1 名前: ◆gfD86vH6Zo [03/07/04 23:32] 2ちゃんねる専用のブラウザを作っちゃおう というプロジェクトです。 [前スレ1より] Part 1 pc.2ch.net/test/read.cgi/tech/981726544/ Part 2 pc.2ch.net/test/read.cgi/tech/1005282763/ Part 3 pc3.2ch.net/test/read.cgi/tech/1012544484/ Part 4 pc2.2ch.net/test/read.cgi/tech/1042432238/ monazilla.org (w www.monazilla.org/
369 名前:委員長 ◆/DABoneCRY mailto:sage [2005/12/31(土) 15:06:52 ] >368 あ、意図した動きだったのね、失礼。 この意図なら、問題なく動いてました。
370 名前:デフォルトの名無しさん mailto:sage [2005/12/31(土) 15:15:15 ] 意図的な作りだとしたら最悪なUIだな・・・w
371 名前:358 mailto:sage [2005/12/31(土) 15:38:39 ] あと、まちBBSなどはまだ対応してないです。 >>362 ぜひ使わせていただきます!! >>369 すいませんわかりにくくて・・・ わかりにくいと言うことは仕様に問題があるってことなので、なおします
372 名前:委員長 ◆/DABoneCRY mailto:sage [2005/12/31(土) 16:15:57 ] >371 > わかりにくいと言うことは仕様に問題があるってことなので、なおします え? 板一覧をクリックでタブが出来て、中は空というのは、開発途中のための 確認のために用意されたワンクッションではなかったの? タブ等と作成ロジックとDLや描画処理を個別に検証するためだと思ってました。 私の考えが正解とは限らないとか、製作者の自由ですよとか、儀礼的なことは 置いておいて、スレッド一覧に表示されるまでに2アクション必要が正式な仕様だとすると ちょっとその意図が見えない気がします。 タブだけ作成されて中身がない状態に、ユーザーに与えるメリットが見えてこないと言うか。 私がここまで口出しするのはどうかと思って話しませんでしたが、 全体的には良く出来ていますし、おっしゃる通り、Jane系のインターフェースで 分かりやすくはなっています。 ただ、このままでは、このソフトの存在意義が見えてこない面が気になりました。 ぶっちゃけて言えば「Janeで良いんぢゃないの?」という感じです。 このソフトの求める路線みたいな物が欲しいなと感じました。 そういう面では、ツリーをポイントした時に看板画像がポップアップされるのは 良かったと思います。(パクろうかと思った(^-^; ) 画像ポップアップのフェードイン処理もカッコ良かったので、こういう方向で 伸ばしていくのも一つの方法かもしれないですね。 偉そうなレスですが、何かの参考になれば。
373 名前:委員長 ◆/DABoneCRY mailto:sage [2005/12/31(土) 16:17:15 ] >372 ×タブ等と作成ロジックとDLや描画処理を個別に検証するためだと思ってました。 〇タブ等の作成ロジックとDLや描画処理を個別に検証するためだと思ってました。
374 名前:デフォルトの名無しさん mailto:sage [2005/12/31(土) 16:34:28 ] >372 その読みづらい文を何とかしてくれ。
375 名前:358 あけおめ mailto:sage [2006/01/01(日) 02:43:19 ] >>372 板の開き方については、自分のJaneの使い方に合わせた感じです。 (あまり深く考えてなかった) > このソフトの求める路線 この辺は大丈夫なんじゃないかと思ってます。色々やってみたいことがあるので。 わざわざ新しく作るのに今あるものと同じもの作っても意味ないですもんね^^ ただ今のバージョンは「特色ねぇなぁ」と思ってたので、ドキっとしました > 看板画像 画像ポップアップ この辺は自分の持ってる方向性みたいなものですね。まだこれだけしかないですが。 こういう部分は書いてて楽しいので、楽しみながらまたーりと続けられたらなぁと。 モチベーションも保てるし。
376 名前:デフォルトの名無しさん mailto:sage [2006/01/01(日) 23:42:21 ] >>352 の看板ポップアップは面白いね。 今のJaneに組み込みたいけど、Delphiは使えねぇ・・・ C++作のOpenJaneほしい〜!
377 名前:逆噴射J mailto:sage [2006/01/01(日) 23:43:57 ] 書き込みてすと送信。
378 名前:逆噴射J ◆lW31l/VtQc mailto:sage [2006/01/02(月) 00:05:56 ] 看板ポップアップが流行しそうや予感。 >>358 俺もパクッていいですか?
379 名前:358 mailto:sage [2006/01/02(月) 12:08:52 ] パクッってかまわないですよ ^^ 自分もいろんなものを参考にして作ってるので・・・
380 名前:逆噴射J mailto:sage [2006/01/03(火) 23:07:24 ] 書き込みてすと送信。
381 名前:逆噴射J mailto:sage [2006/01/03(火) 23:15:46 ] 書き込みてすと送信。
382 名前:逆噴射J ◆lW31l/VtQc mailto:sage [2006/01/03(火) 23:17:20 ] 失礼。間違えて送信してしまいました(;´Д`) >>379 感謝です。
383 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 00:29:28 ] 書き込みテストはここがいいんじゃない? [test] 書き込みテスト 専用スレッド 55 [テスト] qb5.2ch.net/test/read.cgi/operate/1136094372/ こことかも superfree 2chplus.2ch.net/superfree/
384 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 14:19:48 ] あー、、懐かしい流れだなー、、
385 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 17:19:47 ] スキン標準化プロジェクト ttp://dtao.cside.com/stdskin/ これ守ってる人いる?
386 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 21:49:41 ] 一応守ってるよ。 VBだったらRegExオブジェクトで正規表現扱えるし
387 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 22:00:19 ] 何だか偉そうなサイトだな
388 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 23:20:09 ] 偉いんだよ。
389 名前:逆噴射J ◆lW31l/VtQc mailto:sage [2006/01/08(日) 23:24:29 ] >>383 サンクスです。亀レス申し訳ないです。
390 名前:デフォルトの名無しさん mailto:sage [2006/01/23(月) 21:42:13 ] ほっしゅほっしゅ
391 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 15:06:03 ] 2ちゃんのあぼーん検出って前回読んだ1バイト前から読んで、 改行コードじゃなかったら、あぼーんと判定するけど、 したらばみたいにhtmlでしか取れないスレッドのあぼーん判定は どうやればよいでしょうか?
392 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 18:29:45 ] 仕様も読まずにカキコ バイト単位で比較してズレてたらあぼんでいいんじゃないかね
393 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 19:18:11 ] >>391 レス番で範囲指定するしたらばはバイト数で範囲指定する2chのようにあぼーんで 取得範囲がずれる事はないので、気にしない。 したらばで透明処理があったかどうか、あったとしてrawmode.cgiを使った読み込みでも 番号ずれが起こるのかどうかは忘れた。
394 名前:391 mailto:sage [2006/02/05(日) 22:08:03 ] >>393 すみません、書き足りませんでした。 一度最初から読んだら、次回は当然続きから読むわけですが、 おっしゃるとおりバイトがずれることはありません。 ただ、続きから読むので前回取り込んだ分のレスのどれかが サーバー上であぼーんしてても キャッシュの方はあぼーんでないままになるってことです。 これはそのままでいいのかな。 解決するには常に最初から読むしかなさそうだし。
395 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 23:26:36 ] >>394 意図は分かってるんだけど、気にしないしかない。 想像通り最初から読み直すのが解決策だけど、 それだけのために毎回読み直すような事は推奨できない。
396 名前:391 mailto:sage [2006/02/05(日) 23:37:05 ] サーバーの負荷高めるよりは、あぼーんすべきレスが そのままになってる方がマシって結論ですね。 しかし、ちゃんとこのスレ見てくれてる人がいて安心。 monazilla.orgはもう動いてないみたいですし・・・
397 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 23:44:58 ] 年末に復活する兆しはあったんだけど、結局頓挫したっぽいね>monazilla 残念
398 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 02:38:16 ] monazillaの管理人がすみません忙しいですとだけ言い残していなくなって くれやがったから。 いっそ完全に沈黙してくれてたら無視して話を進めることもできたのに。
399 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 11:14:10 ] 虚栄心だけは人一倍だよね。
400 名前:デフォルトの名無しさん mailto:sage [2006/02/20(月) 11:42:43 ] 2ch_Xって全部の板に導入されてるの?
401 名前:デフォルトの名無しさん mailto:sage [2006/02/20(月) 14:32:43 ] 今どんなブラウザがあるかって、まとめてるサイトあるかな? 仮仮仮仮と2ch browser project MacOSXくらいしか知らんのだけど、 他にあれば教えてください。。。
402 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 01:51:36 ] pc.2ch.net/tech/kako/981/981726544.html のようにhtmlとして保存されている過去ログは全て pc.2ch.net/tech/kako/981/981726544.dat.gz のようにgzipされたdatも対に存在していると考えて良いのかな?
403 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 02:12:10 ] 確か、圧縮されていない場合もあったはず。(特に最近の分?)
404 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 09:05:13 ] >>402 qb5.2ch.net/operate/kako/1099/10991/1099135298.dat はあるけど qb5.2ch.net/operate/kako/1099/10991/1099135298.dat.gz はない模様。
405 名前:402 mailto:sage [2006/03/09(木) 09:51:08 ] というと非圧縮でもdatファイル自体は必ずあるのかな?
406 名前:委員長 ◆/DABoneCRY mailto:sage [2006/03/09(木) 21:02:24 ] >405 そうとは限らなかったように思います。 datをまず取りに行き、なければ、.dat.gzで試みるという感じになるかと 思います。
407 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 21:15:29 ] 逆じゃね?
408 名前:委員長 ◆/DABoneCRY mailto:sage [2006/03/09(木) 22:00:50 ] ああ、逆の方が良いかもしれない。 .dat.gzを後付け対応したA Boneでは上記の形になっていたんだ。 二度手間になる率がどっちが高いのか調べてないので何とも言えないけど スレッド丸ごと取得なら、事前に圧縮されている.dat.gzを優先するべきかな?
409 名前:402 mailto:sage [2006/03/09(木) 22:04:38 ] ああいや>>405 で言いたかったのは、過去ログHTMLがある場合 datも圧縮、非圧縮最低どちらかが必ずあるのかなと。 存在の有無確認としては dat.gz、dat、htmlの順になると思いますが。
410 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 13:03:18 ] 過去ログ二変換されてたらdatはないよなあ
411 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 00:10:01 ] JBBSの post/get の仕様ってどうなってるんでしょうか? 資料等公開されていないのでしょうか?
412 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 01:41:39 ] jbbs.livedoor.jp/bbs/read.cgi/computer/351/1040452916/126- jbbs.livedoor.jp/bbs/read.cgi/computer/351/1091172832/ あたり?
413 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 04:58:00 BE:5594876- ] ・HTML化された過去ログはhtmlとdatの両方がある。 ・datは ".dat" か ".dat.gz" のどちらかである。 ・".dat" にアクセスするときも、gzipを許可すると圧縮されて送られてくる。
414 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 05:09:12 BE:7459878- ] .dat.gz と .dat 、どちらを優先するか。 最近はほとんどHTML化されてないけども、されるときは、 見た限り全て .dat なので、最近のログに限って言えば .dat を優先するのが効率的。 HTML化がそれなりにされ、.dat.gz が主流だった時代のログ、 更にそれ以前の、圧縮なんて全くされていなかった時代のログ、 はて、どのログへのアクセスが多いのだろうか。
415 名前:402 mailto:sage [2006/03/11(土) 09:29:12 ] ふむ。じゃあ、 URLは、pc.2ch.net/tech/kako/981/981726544.dat Accept-Encoding: gzip とリクエストすれば圧縮か非圧縮のどちらかが返ってくるってことですね。 それで返ってこない場合はスレッドが存在しないと判断でいいかな。 htmlの有無は見ない。
416 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 15:02:31 ] >>412 ありがとうございます。そちらを見てみます。
417 名前:402 mailto:sage [2006/03/12(日) 23:11:01 ] むぅ、 pc.2ch.net/tech/kako/981/981726544.dat へアクセスするときAccept-Encoding: gzipつけても人大杉になるな・・・ pc.2ch.net/tech/kako/981/981726544.dat.gz だとAccept-Encoding: gzipつけようがつけまいがgzipで返ってくる。 つまり>>404 と逆のケースで、 pc.2ch.net/tech/kako/981/981726544.dat.gz はあるけど pc.2ch.net/tech/kako/981/981726544.dat はない模様。 ぬるぽ。
418 名前:402 mailto:sage [2006/03/12(日) 23:38:27 ] 結局、何をてこずってるのかというと・・・ あるスレに、どこかのスレへのリンクがあるとする。 このスレの>>1 みたいに過去ログへのリンクとか。 リンクはhttp:/..../test/read.cgi/..../の形式で書いてあるとする。 通常リンクを書くときはread.cgiを含んだ形式のはず。 可能性としてそのスレッドは、 -ライブスレッド -●でしか見れない -過去ログdat -過去ログdat.gz -過去ログhtml のいずれか。 これをどう読むかを考え中です。
419 名前:402 mailto:sage [2006/03/12(日) 23:41:31 ] 今、考えているのは -URLを解析してライブスレッドのdatを直読みに行く --あれば、そのまま表示して終了 たとえば、このスレのpart1は pc.2ch.net/test/read.cgi/tech/981726544/ だけどライブと仮定すると pc8.2ch.net/tech/dat/981726544.dat へアクセスすることになる。 もしリンクがサーバー移転前のもので、まだライブスレッドならアクセスできる。 -datがない場合 -リンクのURL(read.cgi)でそのままアクセス --過去ログ倉庫に保存されていますの場合(●でしか見れない) ---offlaw.cgiで読みに行って、あれば表示して終了 ---なければ、「スレッドありません」、とエラー表示して終了 --隊長!過去ログ発見しましたの場合 ---過去ログHTMLのリンクが書いてあるので解析 ---それを元に過去ログdatを読みに行って、あれば表示して終了 ---なければ過去ログdat.gzを読みに行って、あれば表示して終了 ---これでもなければ過去ログhtmlを読みに行って、あれば表示して終了 ---これでもなければ、「スレッドありません」、とエラー表示して終了 もっと負荷減らせそうな良い方法ありますかね? 最初はライブのdatじゃなくread.cgiにアクセスして判断するほうがいいのかな。
420 名前:委員長 ◆/DABoneCRY mailto:sage [2006/03/13(月) 00:04:10 ] UserAgentは「Monazilla」を名乗ってます? 幾分古い情報となっているかもしれませんが、以下のサイトも 参考になると思います。 age.s22.xrea.com/talk2ch/
421 名前:402 mailto:sage [2006/03/13(月) 00:48:49 ] Monazillaは名乗ってます 2ちゃんとーくにも、dat,dat.gzのいずれかがありますと書いてますが、 裏を返せば、やはりどちらかしかないことがあるということですよね。 委員長さんは、>>418 の件、どのような手順でスレッド取得してますか?
422 名前:委員長 ◆/DABoneCRY mailto:sage [2006/03/13(月) 02:16:47 ] >421 > 裏を返せば、やはりどちらかしかないことがあるということですよね。 そうだと思います。 実際に専用ブラウザ開発をやってると、「結果として取れればOK」って スタンスになってしまいますので、datとdat.gzのどちらもあるのか?とか どっちの方が確立が高いのか?とか、そういうのは全然考えてません。(^-^; > 委員長さんは、>>418 の件、どのような手順でスレッド取得してますか? -ライブスレッド -過去ログdat -過去ログdat.gz -●でしか見れない (offlaw.cgi 経由/ログイン時のみ) の順番で取りに行ってますね。 踏んだURLは基本的にご指摘の通り、read.cgi経由ですが A Boneの場合、内部的には全てdatのURLで管理していますので 自動的にdatのURLに変換しており、read.cgiのURLは一切無視。 ライブスレであろうが、過去ログであろうが、単純に上記の手順です。 ただし、それはread.cgi経由のURLを踏んだ場合であって (過去ログか判断出来ないから)、>417のようなdatのURLで書かれて いる場合には、そのまま過去ログdatからスタートしてます。(当たり前ですが) >419の件ですが、offlaw.cgiを最後にしています。 正解なのか分かりませんが、CGI経由は負荷的に気持ち悪いので 最後にしているというのと、dat、dat.gzでトライしてエラーコード302(だっけ?) を見て判定しているだけなので、効率的(速度的)な問題は無視出来ますから。 何より、過去ログですから、If-Modified-Sinceを指定している限り ライブスレッドと違い、一回取ってしまえば何度も取得しに行く訳でもないので 効率はあまり気にする必要はないかと思いますしね。(最後は華麗に逃げ)
423 名前:402 mailto:sage [2006/03/13(月) 02:52:58 ] >>422 なるほど、その順番いいですね。 確かに存在しないファイルのリクエストの負荷はcgiに比べて低いですし read.cgiが出力するhtmlを解析して過去ログのありかを特定とかも面倒ですし。 さっそくそれで組んでみます。 ども、でした。
424 名前:stream ◆PNstream2s [2006/03/13(月) 16:42:14 BE:138759326- ] 差分取得とかさまざまな場面でIf-Modified-Sinceを使ってる2chブラウザが多いですが。 Last-Modifiedを使う場合、秒単位になってしまいます。 秒単位になると何が起こるかと言うと、 1秒間に複数のレスが付いた場合、レスが付いてるのに 304 Not Modified になってしまう場合があります。 特に1000付近でこれが発生すると、dat全体を再取得しないと最後まで読めなくなってしまいます。 これを防ぐには、Last-ModifiedだけでなくETagを保存しておき、 更新チェックのさいはIf-None-Matchを使用するといいです。
425 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 21:12:06 ] 急浮上?
426 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 23:26:07 ] >>422 ●の唯一公式な機能を使うのに必要なんだからofflaw.cgiの負荷は全く気にする必要ないべ
427 名前:402 mailto:sage [2006/03/15(水) 01:44:56 ] うん、それもそうね。 けど、offlaw先に見に行くよりはdat,dat.gz,offlawの順の方が 仕組み的に楽だったんで。もう組んじゃったし(笑
428 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 15:54:20 BE:1065942- ] HTML化されたスレをofflaw.cgiで見ようとすると、 -ERR 過去ログ倉庫で発見 ../tech/kako/981/981726544.dat.gz とエラーになるので、先にofflaw.cgiを見て、 あれば良し、 HTML化なら過去ログ位置を得る、 「そんな板orスレッドないです。」ならおしまい、 という処理をしてもいいかもしれない。 でも面倒。
429 名前:402 mailto:sage [2006/03/15(水) 16:04:52 ] 結局、offlaw使えるのは●ユーザーだけなんで。 ●もってない人のこともかんがえて処理すると 先に述べた方法が一番かと。
430 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 19:03:04 BE:3197838- ] だねー。
431 名前:委員長 ◆/DABoneCRY mailto:sage [2006/03/15(水) 20:32:55 ] あえて付け加えるなら、●ユーザーであっても offlaw.cgiを使わずにdatや、dat.gzで済むなら、 それに越したことはないので、offlaw.cgiは 最後の手段という考え方の方が良いと思いますよ。
432 名前:http://www.vector.co.jp/soft/win95/util/se072729.html [2006/03/18(土) 20:54:25 ] TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
433 名前:デフォルトの名無しさん mailto:sage [2006/03/24(金) 04:32:04 ] "-ERR 過去ログ倉庫で発見"を処理しないブラウザで過去ログが取得できないケースとか offlaw.cgiで送られてくるほうが新しいというケースとかあった気がする。
434 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 01:53:43 ] JBBSのsubject.txtは、なぜ最後の行に1行目と同じ内容の物が出力されるのだろう。 全板でそうなら最後の1行スキップすればよいのだが・・・
435 名前:デフォルトの名無しさん mailto:sage [2006/04/10(月) 10:58:04 ] >>434 最後の行と最初の行が同じだったら 最後の行を削除したらいいじゃない
436 名前:デフォルトの名無しさん mailto:sage [2006/04/10(月) 17:30:40 ] あ、同じかどうか判定して・・・って意味でw
437 名前:デフォルトの名無しさん [2006/04/12(水) 03:17:45 ] ゙lliii,,,,,,,,,,,,, llliiiii,, lllii,,,,、 lll,, .,,ill!!!!゙゙゙゙゙ .'lllll° .lllii,, ゙!llll 'lllllii .” : : : lllll ゙゙lllll .,illl! lii _,,iiilllll゙゙゙!!liii,, !lll| .'llii . .,illll lllllll!゙° .'lllll ゙llll,,,,,iiiiill!!!!!l ,,ill!゙ : ..゙゙゜ .,lllll ..,,,iiil!!!゙゙゙″ .,illllilllllllliii,, ,,ill ,lllll゜ ,,iil!l゙° ,,illll!゙° 'lllll ,,ill! ,,illlll° .lll!° ,illl!゙` .llll| .,,illll ..,,,iill!!° .゙!lii,,_ _、 iilll!゙ .lllll,,,,,,,,iiill!!゙ _,,,,iiil!!゙゙’ ゚゙゙!!!!!lllllllllll!!!!!!!! '!!l° .゙゙゙!!!!゙゙゙
438 名前:デフォルトの名無しさん mailto:sage [2006/04/12(水) 15:59:42 ] >>435 うん、そうした。 でもなんでこんな仕様になってるのやら。
439 名前:デフォルトの名無しさん mailto:sage [2006/04/12(水) 23:55:14 ] RSS配信開始で新しいプロジェクトがいっぱい出てくる予感 ・・・monazillaとは関係ないところで・・・
440 名前:デフォルトの名無しさん [2006/05/09(火) 21:44:21 ] t
441 名前:デフォルトの名無しさん mailto:sage [2006/05/16(火) 18:20:34 BE:7466483- ] monazillaを引き継いでみる。
442 名前:デフォルトの名無しさん [2006/05/16(火) 18:41:41 BE:7466483- ] monazillaプロジェクト+aの勢いで
443 名前:デフォルトの名無しさん [2006/05/16(火) 18:45:14 ] >>66 いるYO!
444 名前:デフォルトの名無しさん [2006/05/16(火) 21:43:14 BE:9955384- ] 名称は「Monazila Japan」に決定。
445 名前:c⌒っミ `Д)っφ ◆CaKkuEV3EI mailto:c⌒っミ `Д)っφsage [2006/05/24(水) 23:00:30 BE:2200872-#] monazilla info.2ch.net/wiki/pukiwiki.php?monazilla ページが刷新しました。 qb5.2ch.net/test/read.cgi/operate/1132069137/134-n qb5.2ch.net/test/read.cgi/operate/1131503902/72-n 従来のページはこちらに移動です。 monazilla/develop info.2ch.net/wiki/pukiwiki.php?monazilla%2Fdevelop
446 名前:デフォルトの名無しさん mailto:sage [2006/05/25(木) 01:03:41 ] otu
447 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 18:26:56 ] http要求ヘッダ例 GET /newsplus/subject.txt HTTP/1.0 Accept-Encoding: gzip Host: news2.2ch.net User-Agent: Monazilla/1.00 Connection: close ttp://age.s22.xrea.com/talk2ch/ 2ちゃんのスレッドを取得するプログラムをC#で作ろうとしているんですが ログを受信する際、こういったヘッダ情報は送信する必要はありますか? 以前試したテストプログラムではUser-AgentやAccept-Encodingは特に設定しなくても 問題なくデータが取得できてしまったんですが・・・
448 名前:stream ◆PNstream2s [2006/05/26(金) 18:51:22 BE:555033986-#] >>447 datファイルは特に規制かけてないみたいなので HTTPの仕様に沿った要求を行えば特に問題ないですね。 ただ、さまざまな理由で規制がかけられないとは限らないんで User-Agent はMonazillaを名乗っておいたほうがよさげ。 さすがに Accept-Encoding: gzip 無しが規制されるとは思えないけど、 C#って.NET2.0なら自動でgzipを展開してくれる機能があるから それを利用して2chの負担を減らそう。 ちなみに offraw.cgi はgzip必須だったような。 read.cgi はUser-Agent必須だったような。
449 名前:447 mailto:sage [2006/05/26(金) 19:02:37 ] >>448 ご指摘ありがとうございます。 > C#って.NET2.0なら自動でgzipを展開してくれる機能があるから > それを利用して2chの負担を減らそう。 C#でgzipの圧縮・解凍ができるとは知りませんでした(汗 早速調べてみます。 ところでgzipを使ったときもログの差分取得は可能でしょうか? そもそもgzipを使ってログを圧縮しているなら、わざわざ差分取得しなくても 鯖には大した負担はかからないでしょうか?
450 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 19:10:24 ] 今gzip圧縮ってしてるの? 転送量よりもCPU負荷の方を軽減したいって感じだったと思うけどうるおぼえ。
451 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 19:44:35 ] Content-RangeとAccept-Encoding:gzipを同時に指定すると、 httpの意味上からは、「gzip済みのdatファイル」の途中から しか送ってくれないので役に立たない。
452 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 00:43:57 ] >>450 うろおぼえ が正しいんじゃなかったか? >>451 初回だけgzipで取れって事?
453 名前:447 mailto:sage [2006/05/27(土) 00:54:09 ] >>451 その差分に関して何ですが、 ttp://age.s22.xrea.com/talk2ch/#get によりますと、 DAT差分を取得 要求ヘッダに次の項目を追加する If-Modified-Since: リモートDATの最終更新時刻(値は応答ヘッダのLast-Modifiedを調べる) Range: bytes=ローカルDATのファイルサイズ- ※If-Modified-SinceとDateヘッダの値は、RFC1123形式で表される時刻。例えば、Fri, 30 Mar 2001 22:35:45 +0900 とのことです。そこで次のようなプログラムを記述したのですが、 System.Net.WebClient wc = new System.Net.WebClient(); wc.Headers.Add("User-Agent", "Monazilla/1.00 (mytool/1.00)"); wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); System.IO.Stream st = wc.OpenRead("pc8.2ch.net/tech/dat/1057329161.dat "); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Shift_JIS"); System.IO.StreamReader sr = new System.IO.StreamReader(st, enc); string html = sr.ReadToEnd(); sr.Close(); st.Close(); Console.WriteLine(html); なぜか実行しようとするとエラーが発生してしまいます。そこで wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); のところをコメントアウトすると問題なく実行してログを取得してくれます。 差分取得するときの要求ヘッダの与え方に何か間違い等はありますか(´・ω・`)?
454 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 01:07:51 ] HTTP-date = rfc1123-date | rfc850-date | asctime-date rfc1123-date = wkday "," SP date1 SP time SP "GMT" rfc850-date = weekday "," SP date2 SP time SP "GMT" asctime-date = wkday SP date3 SP time SP 4DIGIT date1 = 2DIGIT SP month SP 4DIGIT ; day month year (e.g., 02 Jun 1982) date2 = 2DIGIT "-" month "-" 2DIGIT ; day-month-year (e.g., 02-Jun-82) date3 = month SP ( 2DIGIT | ( SP 1DIGIT )) ; month day (e.g., Jun 2) time = 2DIGIT ":" 2DIGIT ":" 2DIGIT ; 00:00:00 - 23:59:59 wkday = "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun" weekday = "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday" month = "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun" | "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec"
455 名前:stream ◆PNstream2s [2006/05/27(土) 02:00:12 ] >>450 ほとんどの鯖でgzip圧縮してるよ >>453 おかしいですねえ。 Headers プロパティは、WebClient が要求で送信するヘッダー情報を含む WebHeaderCollection インスタンスを格納します。これは無制限のヘッダーのコレクションであるため、HttpWebRequest などの WebRequest の子孫で制限されるヘッダーを設定できます。 と書いてあるんですけど、例えばRangeヘッダーでも同じことが起こります。これは.NET Frameworkのバグな気がします。
456 名前:447 mailto:sage [2006/05/27(土) 02:03:05 ] >>455 > おかしいですねえ。 > Headers プロパティは、WebClient が要求で送信するヘッダー情報を含む WebHeaderCollection インスタンスを格納します。これは無制限のヘッダーのコレクションであるため、HttpWebRequest などの WebRequest の子孫で制限されるヘッダーを設定できます。 > と書いてあるんですけど、例えばRangeヘッダーでも同じことが起こります。これは.NET Frameworkのバグな気がします。 そんなことがあるんですか(;´Д`)・・・
457 名前:stream ◆PNstream2s [2006/05/27(土) 11:18:07 ] まあ、HttpWebRequest/HttpWebResponseを使えってことなんですかねえ。 If-Modified-Since にDateTime構造体を突っ込むことが出来たりするので ちょっと手の込んだHTTPリクエストを行う場合はWebClientより便利だと思いますよ。
458 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 11:25:52 ] etag保存しといてif-none-matchを仕掛けた方がいいという話もある
459 名前:stream ◆PNstream2s [2006/05/27(土) 16:31:16 ] 新しい書き込みの仕様 レス FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい key= ←スレッドキー hana=mogera ←追加。常にmogeraを送っとけばいいのかな。 Cookieは不要。
460 名前:stream ◆PNstream2s mailto:sage [2006/05/27(土) 16:35:43 ] スレ立て subject= ←スレッドのタイトル FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい hana=mogera ←追加。常にmogeraを送っとけばいいのかな。
461 名前:stream ◆PNstream2s mailto:sage [2006/05/27(土) 16:36:37 ] Cookieは不要と書きましたが、sports2はCookie無しじゃ書けないので Cookieも今までどおり必要ですね
462 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 17:28:01 ] >>453 >wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1 3.3 Date/Time Formats 3.3.1 Full Date All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), without exception.
463 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 17:33:44 ] クッキー認証、クッキーの必要なサーバーなら出る sports鯖とかsports2.2ch.net/wc/ pc8.2ch.net/test/read.cgi/tech/1057329161/ 459 :stream ◆PNstream2s :2006/05/27(土) 16:31:16 新しい書き込みの仕様 レス FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい key= ←スレッドキー hana=mogera ←追加。常にmogeraを送っとけばいいのかな。 Cookieは不要。 460 :stream ◆PNstream2s :2006/05/27(土) 16:35:43 スレ立て subject= ←スレッドのタイトル FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい hana=mogera ←追加。常にmogeraを送っとけばいいのかな。 461 :stream ◆PNstream2s :2006/05/27(土) 16:36:37 Cookieは不要と書きましたが、sports2はCookie無しじゃ書けないので Cookieも今までどおり必要ですね
464 名前:447 mailto:sage [2006/05/27(土) 17:36:55 ] >>462 > >wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); > RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1 > 3.3 Date/Time Formats > 3.3.1 Full Date > All HTTP date/time stamps MUST be represented in Greenwich Mean Time > (GMT), without exception. wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 GMT"); のようにGMTに変えてみましたが依然エラーが返されるようです。 もしかしたら"If-Modified-Since"の部分が間違っているんでしょうか?
465 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 17:38:27 ] すまん、誤爆した
466 名前:447 mailto:sage [2006/05/27(土) 17:56:43 ] >>457 HttpWebResponse/HttpWebRequestを使ってみましたが↓ やはり"If-Modified-Since"のヘッダー情報を追加すると エラーが生じますね・・・ .Netのバグではないような気もします・・・ //HttpWebRequestの作成 System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest) System.Net.WebRequest.Create("pc8.2ch.net/tech/dat/1057329161.dat "); //サーバーからの応答を受信するためのHttpWebResponseを取得 System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse) webreq.GetResponse(); webres.Headers.Add("User-Agent", "Monazilla/1.00 (mytool/1.00)"); webres.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift-jis"); //応答データを受信するためのStreamを取得 System.IO.Stream st = webres.GetResponseStream(); System.IO.StreamReader sr = new System.IO.StreamReader(st, enc); //受信して表示 string html = sr.ReadToEnd(); Console.WriteLine(html); //閉じる sr.Close();
467 名前:stream ◆PNstream2s mailto:sage [2006/05/27(土) 18:33:23 ] >>466 いや、HttpWebRequest/HttpWebResponseの場合はHeaders.Add("If-Modified-Since",○○) ってやっちゃ駄目なのは仕様。IfModifiedSinceプロパティを使う。 んでWebClientはHeaders.Add("If-Modified-Since",○○)ってやっていいはずなんだけど 実際は出来ないからバグかもしれない、ってことです。
468 名前:447 mailto:sage [2006/05/27(土) 19:03:48 ] >>467 あ、そういうことでしたか。早速IfModifiedSinceプロパティを使わせていただきました。 System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest) System.Net.WebRequest.Create("pc8.2ch.net/tech/dat/1057329161.dat "); webreq.IfModifiedSince = new DateTime(2006, 5, 26, 0, 0, 0); System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse) webreq.GetResponse(); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift-jis"); System.IO.Stream st = webres.GetResponseStream(); System.IO.StreamReader sr = new System.IO.StreamReader(st, enc); string html = sr.ReadToEnd(); Console.WriteLine(html); sr.Close(); コンパイルも通り、問題なく実行もできました。 が、なぜか差分データが取得できませんね・・・ 2006年5月26日移行に書き込まれたデータを取得しようとしたんですが全データが 取得されてしまうようです・・・ 関係ない話ですが、もし可能ならレス番号を指定してそれ移行のデータを要求できれば 便利そうなんですが2ちゃんではそういうものには対応していないんですかね。
469 名前:デフォルトの名無しさん [2006/05/27(土) 20:45:54 ] すごい惨めな気持ちになったぞ! どうしてくれる!