[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
| |
コンソールの2chブラウザを作るスレッド
1
:
ひきぷろ
◆SVQfrniSJY
:2017/03/17(金) 16:43:28 ID:???0
コンソールの2chブラウザを作ってみよー
wiki
https://www54.atwiki.jp/projecthikky/pages/104.html
67
:
(-_-)さん
:2017/03/24(金) 17:31:02 ID:???0
レスの書き込みはクッキー操作やフォームの解析も必要になるから難易度あがりそう
68
:
(-_-)さん
:2017/03/24(金) 17:33:07 ID:???0
レスの書き込みはゴミ箱にJava製のがあるけどこれはまだ使えるのかな?
http://ux.getuploader.com/hikkyp/download/2/write2ch.zip
69
:
(-_-)さん
:2017/03/24(金) 18:40:57 ID:???0
>>68
まだ使えた、これのコード参考にすれば何とかなるのかな
http://i.imgur.com/inRK2UM.png
http://tamae.2ch.net/test/read.cgi/dame/1439747269/260
70
:
(-_-)さん
:2017/03/25(土) 23:14:13 ID:???0
暫定的に定義
◆画面出力系
板一覧の表示 ... func ShowBoardList()
板(スレ一覧)の表示 ... func ShowThreadList(Board)
スレ(レス)の表示 ... func ShowResponse(Thread)
◆通信系
板一覧のダウンロード ... func DownloadBoardList()
スレ一覧のダウンロード ... func DownloadTheadList(Board)
スレ(新着レス)のダウンロード ... func DownloadResponse(Thread)
◆データ処理
板一覧のhtmlから板名とURLの抽出 ... func TakeBoardList(io.Reader) []Board
スレ一覧のhtmlからスレ名とレス数とURLとスレの順番の抽出 ... func TakeThreadList(io.Reader) []Thread
スレ一覧の抽出で抽出したデータと現在のデータの統合(マージ)... func MergeTreadList(Board,[]Thread) Board
スレのhtmlからレス(レス番号、名前、メ欄、日付、ID、本文)の抽出 ... func TakeResponse(io.Reader) []Response
レスの抽出で抽出したデータと現在のデータの統合(マージ)... func MergeResponse(Thread,[]Response) Thread
◆保存系
板一覧から抽出したデータをファイルに保存 ... func SaveBoardList([]Board)
スレ一覧から抽出したデータをファイルに保存 ... func SaveThreadList(Board)
スレから抽出したデータをファイルに保存 ... func SaveResponse(Thread)
◆読込系
保存したファイルから板一覧データの読み出し ... func LoadBoardList() []Board
保存したファイルからスレ一覧データの読み出し ... func LoadTheadList(Board) Board
保存したファイルからスレデータの読み出し ... func LoadResponse(Thread) Thread
◆ユーザ入力系
板一覧の表示要求 ... func InvokeShowBoardList()
板一覧の更新要求 ... func InvokeUpdateBoardList()
板(スレ一覧)の表示要求(板の選択)... func InvokeShowThreadList(Board)
板(スレ一覧)の取得要求 ... func InvokeGetThreadList(Board)
板(スレ一覧)の更新要求 ... func InvokeUpdateThreadList(Board)
スレの表示要求(スレの選択)... func InvokeShowResponse(Thread)
スレ(全レス)の取得要求 ... func InvokeGetAllResponse(Thread)
スレ(新着レス)の取得要求(スレの更新要求)... InvokeGetNewerResponse(Thread)
ブラウザの終了 ... func InvokeExit()
71
:
(-_-)さん
:2017/03/25(土) 23:17:44 ID:???0
>>70
あくまで暫定
データをどう保持するか、とか、全体の処理の流れが十分に決まってないから
決まっていくたびに再定義したほうがよさそう
72
:
(-_-)さん
:2017/03/26(日) 04:13:15 ID:???0
ま、ここまでのほとんどのが暫定ではあるけど
73
:
(-_-)さん
:2017/03/26(日) 04:18:50 ID:???0
スライスのappendで自動拡張されるときで新しいメモリが確保されたときシャローコピーが発生するわけで
[]Threadや[]Responseのシャローコピーが発生するのは高コストだから
[]*Threadや[]*Responseに書き換える必要があるのかもな
74
:
(-_-)さん
:2017/03/26(日) 04:21:37 ID:???0
>>70
は関数で定義してしまっているけどメソッドという形での定義でもよさそうだな
func SaveThreadList(Board) は func (*Board)Save() とか
func MergeTreadList(Board,[]Thread) Boardは func (*Board)Merge([]*Tread) Board とか
75
:
(-_-)さん
:2017/03/26(日) 04:25:13 ID:???0
一応説明捕捉するとMerge系のはBoardやThreadをイミュータブルな型としてみなして更新データを返却するというイメージね
ミュータブルで直接更新でもいいのかもしれないけど
76
:
ひきぷろ
◆SVQfrniSJY
:2017/03/27(月) 17:08:31 ID:???0
projecthikky @ ウィキ - ヒッキー共同開発に関するページ/2chブラウザ
https://www54.atwiki.jp/projecthikky/pages/104.html
ちょっとだけ追記してみた
77
:
(-_-)さん
:2017/03/27(月) 22:40:13 ID:???0
>>76
乙です
78
:
(-_-)さん
:2017/03/28(火) 16:31:13 ID:???0
アプリ起動
↓
前回終了時の状態の読込(保存してあるデータの読込)
↓
画面に表示
↓
ユーザからの入力待ち
↓
ユーザの入力
↓
処理
79
:
(-_-)さん
:2017/03/29(水) 23:06:01 ID:???0
[アプリ起動]
↓
[前処理]
↓
[画面表示] ←┐ループ
↓ │
[入力待ち] │
↓ │
[要求された処理]┘
80
:
(-_-)さん
:2017/03/30(木) 07:02:35 ID:???0
[前処理]は
初回起動時は板一覧の取得とか
次回以降は保存されてる板一覧とかの読み込みとか
81
:
(-_-)さん
:2017/03/30(木) 19:23:59 ID:???0
マルチスレッドにするなら
{{メインスレッド}}
[アプリ起動]
↓
[前処理]
↓
[各スレッド起動]
↓
[画面表示スレッドに表示リクエスト]
↓
[入力待ち]←───┐
↓ │
[要求に応じた処理]┘(アプリ終了以外の処理)
↓(アプリ終了の要求なら)
[後処理]
↓
[アプリ終了]
{{画面表示スレッド}}
[リクエスト待ち]←┐
↓ │
[画面表示]────┘
{{ダウンロードスレッド}}
[リクエスト待ち]←──────────────────┐ 無限ループ
↓ │
[指定ファイルをダウンロード] │
↓ │
[1つのダウンロードが終わったことを表示するよう │
画面表示スレッドにリクエスト] │
↓ │
[ファイルを処理する関数を実行する新規スレッドを立てる]┘
{{各ファイルを処理する関数のスレッド}}
[ファイルからデータ抽出]
↓
[現在のデータと新規のデータを統合(マージ)]
↓
[ファイルへの保存]
↓
[更新したデータを表示可能だと画面表示スレッドにリクエスト]
↓
[このスレッドの終了]
82
:
(-_-)さん
:2017/03/30(木) 19:28:42 ID:???0
[前処理]は
>>80
と同じ
[後処理]は
起動中のスレッドの終了とか
アプリの状態の保存とか
[要求に応じた処理]は
・板一覧の表示を要求
・板を選択してスレ一覧を表示の要求(ダウンロードやファイルからの読み込み)
・開いてるスレ一覧の更新の要求
・スレを選択してレスを表示の要求(ダウンロードやファイルからの読み込み)
・開いてるスレの更新の要求(新着レスのダウンロード)
そして
・アプリの終了
83
:
(-_-)さん
:2017/04/01(土) 03:51:12 ID:???0
2chのスレのhtmlのフォーマット変わった?
前はdl,dt,ddあたりのタグでレスが列挙されてた気がしたけど
今見たらdivでレスが括られてた
84
:
(-_-)さん
:2017/04/01(土) 03:57:49 ID:???0
古い2chまんまの仕様だと言われる2ch.scはdl,dt,ddの構成
http://ikura.2ch.sc/test/read.cgi/hikky/1489179773/l50
同じく2ch型を謳うしたらばもdl,dt,ddの構成(ただし文字コードがEUC-JP)
http://jbbs.shitaraba.net/bbs/read.cgi/computer/44607/1489736608/l50
しかし肝心の2ch.netがdivになってる(しかも改行とかが詰められて圧縮されてる)
http://hanabi.2ch.net/test/read.cgi/hikky/1489179773/l50
85
:
(-_-)さん
:2017/04/01(土) 03:59:29 ID:???0
まぁもともとscへのコピー対策でクローリング対策やスクレイピング対策をされてるだろうから
html文書の構成がちょくちょく変わる可能性あるね(APIじゃないと厳しいところあるのかも)
86
:
(-_-)さん
:2017/04/04(火) 17:45:17 ID:???0
> ダウンロードについては、HTTPのIf-Modified-Sinceヘッダをうまく扱えれば
> 本文のダウンロード処理を減らすことができそう
これって静的コンテンツ以外でも使えたんだっけ?
スレってサーバ側のスクリプト(read.cgi)で動的生成だろうから
read.cgiがそのヘッダをどう取り扱っているか調べないといけないね
87
:
(-_-)さん
:2017/04/04(火) 17:48:23 ID:???0
以前のdat形式は静的コンテンツだったからそのヘッダを使うことが推奨されていたのだけれど
88
:
(-_-)さん
:2017/04/04(火) 21:36:23 ID:???0
板一覧とスレ一覧は静的か
過疎板でなけりゃスレ一覧は更新頻度高いから確認する意味なさそうだけど
89
:
ひきぷろ
◆SVQfrniSJY
:2017/04/05(水) 02:00:46 ID:???0
もう調べ終わった後かもしれないけど、
動的生成のページは、If-Modified-Since対応をあえて書いてる場合しか
HTTPステータスで304とか返してくれなさそうだよね。
転送容量を減らすという機能でいうと、
2chはURLのスレIDの後に "/100-" とか書くと、途中のレスから読める機能があったよね。
90
:
(-_-)さん
:2017/08/18(金) 19:09:04 ID:RqcRcy1I0
itestのAPIを使ったらどう?
認証ないから不正アクセスじゃないし、スクレイピングでもない
91
:
(-_-)さん
:2017/10/02(月) 14:31:15 ID:xWRj2EwM0
2chは5chに変わったそうですよ
92
:
(-_-)さん
:2020/01/14(火) 19:42:45 ID:QlE6dbBA0
少し挙動が怪しいですがこうなりました
https://ux.getuploader.com/hikkyp/download/41
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板