1 :
◆gfD86vH6Zo :
03/07/04 23:32
2 :
デフォルトの名無しさん :03/07/04 23:33
削除依頼よろしく
3 :
デフォルトの名無しさん :03/07/04 23:34
まだ300以上も書けるじゃねーか>前スレ
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
保守
このペースだと、あと1ヶ月くらいは保守かな。。。
(^^)
hoshu
まだまだ保守するよー
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
出番かもしれないから。
ねぇ、そろそろアゲた方が良くないかい?
14 :
デフォルトの名無しさん :03/09/09 22:02
からあげ
1レスだけとってきたデータとかに人大杉がつくってことある?
とりあえず前スレを使い果たそう
それには、あと1ヶ月くらいかかりそうだな(w
もしかして、海外からdatは取得できない仕様だったりします? まとめtoolをsaita.ma鯖に設置したら取れなくて・・・
>>18 海外でも問題ないはずですー
htaccessで規制されていないかどうか、
リクエストヘッダフィールドは仕様通りか、
もう一度確認してみてください
2chに一日で書き込まれるメッセージのサイズはおおよそ どんくらいですか? (リクエストやリクエストの返信に使うデータのサイズは除く)
前スレ1000到達sage
>>前スレ996氏 観覧ツールをIEだけで済ませたいならp2がおすすめ。p2最強。マジ最強。 補助ツールなら入れてもいいと言うなら壷やj2ch-cacheもいいかと。 (j2ch-cacheはあっちのスレの方で改造版があげられてます。) この3つはIEの中で操作できるのですぐに慣れるはず。 壷なんかそのまんまだし。
ieがいいって言うやつは、本当に「IEの操作」の事じゃなくて、 2chのread.cgiとbbs.cgiの作り出す、あのHTMLとしてのインターフェイスがいいって事だろ。
あの人こっちには来ないのかな
26 :
デフォルトの名無しさん :03/10/24 13:37
(゚∀゚)普通にリンク貼るだけでいいんちゃう?
>>26 例えば [ID:xxxxxx] で同スレ内の同じ ID の書き込みポップアップとか?
>>26 いいかも。ちなみに、Navi2ch には添付ファイルもどきがあります。
ただ、例示の「前スレ」は前スレの判定が難しそうだ。
>>29 > ただ、例示の「前スレ」は前スレの判定が難しそうだ。
そういう話ではないと思われ。
ふつうに >>前スレ[0-9]+ を置換すればよろし。
タグやデータの追加はしても書き換えはしない方向で。 あるいは書き換えが起きた部分は 斜体にするとか色変えるととかして区別できるようにすればいい。
むしろ「前スレ」という文字列に対するURLは スレ毎の情報として設定できるようにして、 前スレ[0-9]+はそのURL+数字部分、みたいな展開がいいなあ。 そんでスレの1に前スレ(改行)URL があったらそれが初期値セットされるとか。
前スレ取得の話と 文字列をリンクにする (URL を表示させない) 話が ごっちゃになってないか?
37 :
デフォルトの名無しさん :03/10/30 10:39
人いなさすぎage
38 :
デフォルトの名無しさん :03/11/05 20:20
age
/test/r.i/xxx/xxxx/w にアクセスしたときにbbs.cgiにPOSTする内容(submit="かきこむ")で codeというのがあるのですが、これは何でしょうか? ブラウザから見ると"12345678"になってるみたいなんですが。
連投を防ぐためのランダムな値では
>>39 今は外れていますけど、同画面投稿防止の為のものだと思います。
保守?
今巡回の制限ってどうなってるのかな。 IDないと巡回まったく出来ないのもあれば、 ID無くても巡回しまくれるのもある。
>>43 ソフトウェアの仕様によると思います。
2ch側では特に制限は設けていないはずですが、
過度の巡回は.htaccessで規制される恐れがあります。
>ソフトウェアの仕様によると思います。 ンな事当たり前でしょ。 2ch側で制限もうけてるよ。 いや、そもそも「制限」という言葉の意味を取り違えてるというか。 なんつうの、以前かちゅの巡回が問題になって話し合ってたじゃん、巡回の制限について。 だからかちゅはログインしてない時は巡回にウエイトが入ったり、 ゾヌやギコはIDがないと巡回できないようになったんでしょ。 当時の専用ブラウザはそういう話し合いの元巡回機能の「制限」をしたわけだが、 現在はそれについて全然語られる事無く、p2とか巡回無制限のも出現してしまっているが、 そういうのは今やっても問題ないのか、今は巡回の自主規制をどうするべきなのか。 以前かちゅの巡回について話合ったときは情勢も変わってるだろうから、 今それはどうなっているのか。 そういう事よ。
んー、だからその制限が.htaccess規制なんだと思いますけど。。。
というか、自主制限の話ならまた改めて議論してもいいのでは? 2chで拘束力を持つ規制をかけるのが一つ。 各ツール毎に自主制限をかけるのが一つ。 恐らく後発のツールは全てのログに目を通しているわけではないですし。 各作者の裁量に任されている部分は呼びかける以外どうしようもないでしょう。 不都合が発生するときは2ch側が仕様を変えるだけかと。
.htaccess規制なんて
>>46 の時されてないぞ。
してみたいところだけど<議論 議論しようにも現状を把握する夜勤さんやらが来てくれないと難しいよなぁ。
夜勤だって把握できてなかったじゃん。
>>議論 Janeの糞派生は作者も信者も開き直るだけ。 Jane総合掲示板の派生系スレを見たら呆れるよ。 今度は板の全部のスレを開く機能が付いたそうだ。
jane派生はもうやりたい放題だな。 なんというか、責任感の分散が罪の意識を軽減させてるっつーか、 なんかそれこそ2chに名無しで書き込む感じに似ている。
強制力のある制限をかけてもらうのも手かも。
とりあえず今はJane派生の開発動向を睨んでいるとよさそうだと いうのは分かった。
>>54 リソースを無駄に消費するアクセスは強制排除したいけど、
そのためのシステムもリソースを消費するんだよな。
難しいところだ。
>>52 > 今度は板の全部のスレを開く機能が付いたそうだ。
すげー。
何がすげーってそんなの考えつくことが。
後、自主規制のことだけど、ソース出してる奴だと「やっても意味あるのかな」
って感じがある。ユーザがそれなりの技術力持ってると書き換えなんて簡単
だし。
それなりの技術を持ってるやつが やっても意味あるのかな と疑問をもつようなことを やるわけがない と思う
オープンソースで開発者の裾野が(馬鹿にまで)ひろがった。
60 :
デフォルトの名無しさん :03/12/14 21:53
からあげ
61 :
デフォルトの名無しさん :03/12/15 23:03
氏ね
63 :
デフォルトの名無しさん :04/01/04 20:54
dolib1.00の仕様を読んでますがofflowが使えなくなっているのでてんやわんやです。 dat落ちログの取得方法をご教示下さい。 また、dat落ちログって既にhtml化されているのでしょうか?
gzip圧縮に対応していないと「もう 使えません」のエラーが出ます。
66 :
デフォルトの名無しさん :04/01/18 16:38
だれかいますか?
|д゚)ノ
たいしたことではないです あたらしいブラウザ発表しようと思ったけど 明日にします
何故、呼びかけといて明日・・・。 記者会見でも開くつもりかい?
しかし、 2ch ブラウザも随分増えたねぇ。
2chブラウザのないOSってまだ結構あるのかしら?
Human68k
MSX-DOS2
超漢字
本日16:30より
>>66 によります新作ブラウザ発表会見がございます。
みなさまお誘いあわせの上、ふるってご参加ください。
(゚Д゚)ゴルァ!!
遅刻もここまでくると大物だな
もしかして
>>66 の身に何かが…((((((;゚Д゚))))))ガクガクブルブル
独自規格をつっぱしる2chならではと言う感じですね。 対応するのもまたたのし。
sage
87 :
デフォルトの名無しさん :04/03/05 12:34
●でdat落ちログをofflawで取得しようとして もう つかえません ってエラーがでるとき、どんなミスが考えられますか?
accept-encodingはgzipです
>>87 さん、
IDは伏せて、offlawへのリクエストラインを貼ってみてください。
多分それが一番早く解決に到達できます。
リクエストヘッダはこんな感じです GET /test/offlaw.cgi/mobile/1073701325/?raw=0.0&sid=Monazilla%2F1%2E00(URLエンコードしたsession-id) HTTP/1.1 Connection: close Accept: */* Accept-Encoding: gzip User-Agent: Monazilla/1.00 (jane2ch/1.00) Host: pc3.2ch.net
jane作者ハケーン!
スマソ UAは偽装
プログラムは正しいリクエストをしているのに ファイアウォールがヘッダを書き換えてるとかね。
漏れが自前ブラウザに●対応部分を実装した時には、 セッションIDの最後のLFを捨てるのを忘れてはまったよ。
>>93 UAは●の収益分配に使われてるから他人のを偽装したら駄目
その作者を儲けさせたいなら話は別だけど
そう言えばUAって最近NHKに出てるんだよな。ううあとか表記されてるらしい。 ところで、俺●つき2chビューア作者なんですが金の分配の話なんて全く来てないぞと。
狂っぷーに●のお金はあげられませんよ98さん。
>>98 Monazilla MLの過去ログによると
夜勤氏に直接メールして相談するようです
>>100 うい、取りあえず\300ほどよこせとメール出してみます。
UA偽装するようなパッチを作ったら大もうけできそうだな
そのパッチをどうにかしてみんなに使わせないと意味ないと思うが
105 :
デフォルトの名無しさん :04/03/29 12:32
ほっしゅ
ソフトウェア板の適当な 2ch ブラウザスレで作者に訊いた方が早いかと。
monazillaは事実上、あぼーん?
MLに入ることが出来ました。 が、メールが全然流れてきません。停滞してる?
一体何を話せっていうんだよ。 別に話す事ないんだからメールも流れん。 MLで話し合うべき事が仮にあるとしたら、このスレもこんな閑散としてないだろうし。
Monazilla.rbという、Rubyから2ちゃんねるをアクセスするプロジェクトの成果です。 fun.kzというサーバでsubject.txt,*.datを公開しました。 2ちゃんねるブラウザの板一覧ファイルの*.2ch.net,*.pinkbbs.comをfun.kzに書き換えればアクセスできます。 あくまでスナップショットなので古い情報を表示することもありますが、代わりにdat落ちしてもアクセス可能です。
>>114 charset つけてくれると嬉しいです。
と、それはおいといて、単なるミラーだとインパクトが無いので、
グラフとかランキングとかテキストマイニングとかしてみると
いいんじゃないでしょうか。
>>115 デフォルトのCharsetがUTF-8でした(^^;
<META>タグでShift_JIS指定しても無駄だったのでApacheの設定いじりました。
今後は、まずスレッド検索を実装してみようと思います。
ひろゆきタンから予想通りのつっこみが入ったわけだが・・・
会社から2ちゃんねる見れるだけで、かなり嬉しいんだけど、それだけじゃ駄目なのかな? 今後はスレッド検索とかテキストマイニングもやってくつもりだし。
ML の話?
>>118 > 会社から2ちゃんねる見れるだけで、かなり嬉しいんだけど、それだけじゃ駄目なのかな?
ひろゆきも突っ込んでいたが普通にプロキシすれば済む話で
膨大な転送量と負荷を引き換えに得られるメリットとしては
説得力がいまいちだと思われ
ライブラリだけほしい。
>>116 どうもです。
>>120 他でもやってるけど
・板ごとの書き込みランキング
・時間帯と書き込み数のグラフ
・スレの生き死にの様子のグラフ化
テキストマイニングすれば
・さっき 2ch で流行ってたこと
・いつどんなのが流行ってたか
・情報伝播(スレッドがどう紹介されていくか)の流れ
なんかはできるんじゃないかな。
> 他でもやってるけど 「車輪の再発明」というのもひろゆきに突っ込まれてたな。 なんつーか人の話を聞け
まぁ好きでやってんなら別にいいんでない? ここじゃなくよそでやってほしいが。
皆が好き好きで2chからガンガンdatをダウンロードするツールを 開発したら、ひろゆきからすればやってられないだろ。 なんつか、実装できるからしてしまえ的な発想はやめてほしいな。
他のツール作者が負荷減らそうと頑張ってコーディングしてる事も考えるべき。
130 :
デフォルトの名無しさん :04/05/07 05:20
現在、書き込み機能の実装をしているのですが、 注意やエラーは、どのように扱えばいいのでしょうか。 monazillaの資料室や、と〜く2ちゃんねるを調べていましたが、 注意やエラーの原因がどごにあるのかを調べる方法がよく分かりません。
>>130 成功したら「成功したすた」
失敗したら「失敗しますた」
と書いてくれる。
人間が読める言葉で書いてあるので 人間には理解できる。
プログラムに理解させるのは面倒くさい。
HTTPステータスみたいな数字を用意してもらえるとありがたいのになァ
いちおう 2ch_X があるけどな
広告書き込みツールを欺くために書き込み成功を装ったりするからな
スレ一覧を定期的に取得して レス数/時間 で「注目度」順に並べるページがあった 気がするが 覚えていない?なくなった?
139 :
デフォルトの名無しさん :04/06/04 05:23
どこが不満かね?
もなじら 移転した? それとも鯖落ちてる?
私も前から気にはなっていた。 別に不満があるわけじゃないんだけどね。 管理者が居なくなっただけなの?
146 :
デフォルトの名無しさん :04/09/19 04:21:31
長沼町のハイジ牧場
保留
保守
149 :
デフォルトの名無しさん :04/11/21 13:22:50
もうすぐ最終更新からちょうど一年だねぇ。age
150 :
デフォルトの名無しさん :04/11/22 09:53:24
151 :
デフォルトの名無しさん :04/11/25 02:58:21
あと4日、か・・・。
ドメインの期限はいつ頃だっけ
Last Updated On:24-Sep-2004 03:56:50 UTC Expiration Date:23-Oct-2005 17:44:22 UTC って、9月に更新済みらしぃ
ドメイン取ったのは夜勤さんでそ、
うわーリロードしてから書き込むべきだったハズカシイゴメンヨ
でもさ、今のmonazilla.orgって微妙だよね。 ブラウザ書く時に参考にしてたんだけど、2chの仕様に追いついてないし、 > 2002年現在、まちBBSの仕様はJBBSとは若干違っている って書かれても何が違うのか分かんないよ。 新しいブラウザも出てきたから、リンク集としてもイマイチだしさ。 更新できないならやめてしまえ。
質問だけど、今もMLでやり取りって行われてるの?
新 monazilla.org きぼん
いっそのことmonazilla.jp作ってくれ
monazillaって独自ブラウザ開発してるわけじゃなくて、2chブラウザの総合情報サイトだよね?
164 :
デフォルトの名無しさん :04/11/28 15:32:14
2ちゃんねる専用のブラウザを作っちゃおう というプロジェクトです。 って1には書いてあるけど、作った形跡ないな。
今、新しく作っても●による収益は入ってこない予感
むしろ全部鯖代につぎ込んでる予感。
>163 仮*4へのリンクとか。 どうせ仮*5ができたりするだろうから。 あと、掲示板に書かれたものと、それをまとめたものでは、 読むための労力が全然違うと思うよ。
あんまり仕様をわかりやすくまとめてしまうといたずらしやすくなってしまうのでは。
明日で最後の更新から一年だね(´・ω・`)
どっかにwikiでも立てればいいのになぁと思うがどうか
>>164 Part1やPart2のころは作ってたんだよ
その成果がホットゾヌ
最初のぞぬはアプリじゃなくてライブラリじゃなかったっけ?
名称から妄想するに ゾヌがライブラリでホットゾヌがブラウザだとか
>>175 さん
それはあくまでも「全掲示板&案内」改定内のみのお話ですので、他のペー
ジに該当することではございません。ご安心くださいませ。
>>176 > でもコレ、サブページはどうやって書けばいいんだろ。
サブページも新規に作成してリンクを張るだけ
wiki更新してる?
もちろん立てたっきり放置です
せかしちゃいやん。。 休憩時間に書いてるだけなんで、だいたい週1ペースで。 今日の夕方か明日には、bbsmenuのページが書き終わる予定。
monazilla/なんとか〜 のほうがいいよ。 改名は管理パスワードが必要だから頼まないといけないけど。
>>184 やってみたのですが
monazilla/subject.txtの仕様
monazilla%2Fsubject.txt%A4%CE%BB%C5%CD%CD
/→%2Fになって、ぱっと見”Fsubject.txt”ってなんじゃらほいみたいな感じになるので
>>183 では”_”をいれてみました。あとは” . ”と” - ”と” ~ ”が使えるようです。
うーん、どうしようか。好みでは"-"を押しておくけど、 "."は拡張子と被るからやめたほうがいいかと。 monazilla.subject.txtとか。 ついでに、まちBBSほか、2ch以外も扱いはじめた時のために、 monazilla-2ch-subject.txtまで含めたほうがいいんじゃない? monazilla/2ch/subject.txt monazilla_2ch_subject.txt monazilla:2ch:subject.txt ここひと月で変更があったのって、IDの隣にBEが付いたのと、 subbbs.cgiが廃止になったのだけであってる?
過去ログのgz圧縮をやめたらしい
188 :
◆ap/yuix/tw :05/01/16 18:22:47
何の仕様? 独自? 公式?
この手の話で「公式」ってのは無いだろう。 「誰かが調べました」って感じ。 あってると思うが。
>188 たまに404の時もある、
保守
193 :
デフォルトの名無しさん :05/02/22 20:31:08
hoshu
195 :
デフォルトの名無しさん :05/03/01 21:24:07
上司が来たとき用にIDE風なスキンきぼんぬ
197 :
デフォルトの名無しさん :05/03/14 02:22:24
ミ・д・ミほっしゅ
198 :
某47 ◆ap/yuix/tw :05/03/15 14:13:46
bbsmenuが移転しそうです。
199 :
某47 ◆ap/yuix/tw :05/03/15 14:14:18 ID:t7W6uWKt BE:20524984-#
200 :
デフォルトの名無しさん :2005/03/26(土) 14:49:53
とまってるね
改悪が続いてるな。
この日付は最低だな。
真のプログラマならこのぐらいの仕様変更には耐えられるはず!!
syntax errorってところが2chぽいな
206 :
デフォルトの名無しさん :2005/04/03(日) 16:03:23
こういう質問はここでいいのでしょうか。 dat落ちした直後だと subject.txt にはスレが載っていても、 datにアクセスするともうずっと人大杉になっているということがあるようなのですが、 その判定は、どうするのがいいのでしょうか。 送られてきた dat の中身の「もうずっと人大杉」の文字で判定するのでは もし本当のスレにそう書いてあったらまずいので。
HTTPのステータスコードで判定
あ!そうか! HTTP/1.1 200 OK なら本当に取得ですね。 ありがとうございました。
保守 ・・・する必要あるのだろうか
210 :
デフォルトの名無しさん :2005/06/11(土) 00:36:21
受け取ったクッキーをちゃんと返さないと書き込めなくなる模様 今まで2ちゃんねるが返すクッキーを独自処理してた人は注意
test
212 :
デフォルトの名無しさん :2005/06/11(土) 13:32:25
p2ほか2chブラウザで表示される「スレの勢い」ってどうやって調べるのでしょうか。 subject.txt見ても分かりません。
スレID(1057329161とか)がUNIXTIMEだからスレの1の発言日時がわかる。 そこから現在までの差を出してやればいいんじゃね?
大体のブラウザの勢いは前回とのレス数差分だよ
217 :
デフォルトの名無しさん :2005/07/13(水) 10:54:53
一応保守
218 :
デフォルトの名無しさん :2005/07/22(金) 11:20:30
monazillaのページ落ちてない?
monazilla更新されてないけど あれでいいのかなぁ?
monazillaの新管理人になりたいと名乗りを上げたらなれると思う。 とmumumu氏が言ってた気がする。
ソースきぼん 調味料ネタ禁止
224 :
デフォルトの名無しさん :2005/08/30(火) 01:20:05
be板ってEUC-JPですけど、各板のエンコーディングって、どっかに情報ありましたっけ? レスポンスヘッダのContentEncodingは空でした・・・orz
2ちゃんねる開発総合スレ落ちたな…
>>224 ないけどそれ以前の問題として
Content-Encodingは文字コードを指定するヘッダじゃない
226 :
224 :2005/09/03(土) 21:36:15
すまん、圧縮時のエンコーディングだった。勉強不足。
227 :
デフォルトの名無しさん :2005/10/12(水) 18:22:59
TWebBrowserでwriteした後にスクロールさせようとしてます。 OleVariant(WebBrowser1.Document as IHTMLDocument2).Write(strs); OleVariant(WebBrowser1.Document as IHTMLDocument2).body.scrollTop := OleVariant(WebBrowser1.Document as IHTMLDocument2).body.scrollHeight; →反応しせずorz OleVariant(WebBrowser1.Document as IHTMLDocument2).Write(MakeViewHtml); OleVariant(WebBrowser1.Document as IHTMLDocument2).Close; OleVariant(WebBrowser1.Document as IHTMLDocument2).body.scrollTop := OleVariant(WebBrowser1.Document as IHTMLDocument2).body.scrollHeight; →途中までorz 後からスクロールさせることはできるんですが一括でやると上手くいかない。 専ブラは表示→スクロールをやってるけど 書き込みの終了を知らせるイベントか何かあるんでしょうか。
TWebBrowser.ReadyStateがREADYSTATE_COMPLETEになるまで待つといいようです。 こんな感じ↓ while ReadyState <> READYSTATE_COMPLETE do Forms.Application.ProcessMessages; TEmbeddedWbというフリーのコンポのソースが参考になります。
>>228 ありがとうございます。うまく動きました。
あと
>>227 で途中で止まるのは自分がHeightの解釈を間違えてるのか
html文の最後にアンカーつけてジャンプさせたら下までスクロールできました。
誤解するようなものつけてすいませんゞ
ついでにTEmbeddedWb使ってみるかな・・・
完成させるかどうかは別として、2chブラウザつくるのはいいトレーニング材料だと思いませんか。
思うよだから?
一息で
なんとなくカキコ
久しぶりにまともなメールが流れてきたな。
235 :
デフォルトの名無しさん :2005/11/09(水) 10:59:04
ちょっと教えてください。
perlでdatを読もうとしてるのですが、range指定をしても全部読んじゃいます。
どこが間違っているのでしょうか??
my $dat = "1131251940";
my $url = "
http://ex10.2ch.net/news4vip/dat/ " . $dat . ".dat";
my $date = "Tue, 08 Nov 2005 13:24:04 GMT";
my $browser = LWP::UserAgent->new();
my $response = $browser->get( $url,
'User-Agent' => 'Monazilla/1.00',
'Accept-Encoding' => 'gzip',
'If-Modified-Since' => $date,
'Range' => 'bytes=94749-',
'If-Range' => $date
);
die "\n$url を読み込めませんでした: ", $response->status_line unless $response->is_success();
セッションのログ取っとけよ
Accept-Encoding: gzip をはずす
238 :
デフォルトの名無しさん :2005/11/09(水) 15:23:06
>>236 セッションのログってどうやって取るんでしょうか?
>>237 それでもだめでした。。
普通に 200 OK が返ってきます。。
239 :
stream ◆ap/yuix/tw :2005/11/09(水) 16:01:56
>>235 If-Rangeの使い方が間違ってる
If-Rangeってのは、「もしこの時刻より後に更新されている場合は全体を、更新されてなければ部分をくれ」
って意味。
こんなところにもストリーム
241 :
235 :2005/11/09(水) 19:25:22
>>239 そうだったのか!!
じゃぁ、過去に取得した後、更新された部分のみを取ろうとしたら、
方法はあるのでしょうか??
239さんの「」内の意味だと、If-Rangeには適当な過去を指定して、
Rangeに過去に取得済みのデータ長指定しておけば
取れそうな気がしないでもないが..
>>241 …んー、If-Range使わなきゃいいんじゃね?
>>241 適当な過去を入れたら、必ず全体が返ってきますよ。適当な未来を入れればいいんだけど。
もっといいのは、If-Rangeを使わない。
If-Modified-Sinceだけでいい。
244 :
235 :2005/11/09(水) 22:24:08
If-Range使わないと、 416 Requested Range Not Satisfiable at ... エラーに.. Range指定してる値がおかしいんでしょうか?? my $data = Compress::Zlib::memGunzip( $response->content ); この$dataのlengthとってるんですが。 それとも、更新部分のみ取得、さえする必要ないのでしょうか??
Rangeが間違ってるか、If-Modified-Sinceが間違ってるか、どっちかだと思います。 このスレを読んだJane系ブラウザのヘッダです 参考にしてください GET /tech/dat/1057329161.dat HTTP/1.1 If-Modified-Since: Wed, 09 Nov 2005 13:24:08 GMT Host: pc8.2ch.net Accept: text/html, */* User-Agent: Monazilla/1.00 (JaneLovely/0.1.6) Range: bytes=44831- Connection: keep-alive HTTP/1.1 304 Not Modified Date: Wed, 09 Nov 2005 13:41:52 GMT Server: Apache/2.0.53 (Unix) PHP/4.3.10 mod_ssl/2.0.53 OpenSSL/0.9.7d Connection: close ETag: "780f3e-af1f-cd950e00"
>>244 perlはよくわからんがレスポンスを展開したサイズってことか?
>>237 に有る通りgzipされてないレスポンスをもらえ。
gzipをAcceptしてるとRangeの扱いがgzipされた状態のバイト位置になるはず。
247 :
235 :2005/11/09(水) 23:57:03
今の2chは転送量よりCPU負荷を気にしてると思う だからgzipなんて要らないかと・・
こっちは相手のこと考えずAccept-Encoding入れればいいじゃん 向こうが圧縮するかしないか決めれるんだし
それに●対応しようと思ったらAccept-Encoding送らないと 過去ログを返してもらえない
VBでgzipの解答の仕方がわからない・・・ ご存知の方いますか?
ただのZIPだから普通に解凍すればいいと思うよ
そうだったんですか、gzip.orgで色々みてたけどさっぱりだったんで困ってました。 Info-ZIPでzip32.dllがダウンロードできたので試してみます。
Can gunzip extract a .zip archive? No. Use unzip instead. For Windows, use PowerArchiver 6.1 or WiZ or 7-zip (freeware) or or Winzip (commercial).
ZIP解凍できないですね・・・orz
>>255 その4つのどれかを使って解凍すれば良いんですね。
とりあえず7-zipを調べてみます、ありがとうございました。
だからWindowsのzipとは別物
ZIPはPhil Katz氏が考案・開発したファイル圧縮形式およびファイルフォーマット。 事実上の世界標準。 日本ではLHA(LZH)とシェアが拮抗しているが、 世界ではほとんどの圧縮アーカイブがこの形式を使っている。 オリジナルのソフトウェアはシェアウェアとして開発されているが、 ZIP形式を扱える多くのアプリケーションソフトウェアが開発され ソースも一般に公開されているので、事実用フリーの形式と言える。 また、UNIX系で標準的に使われているGZIPは同じzlib (Deflateアルゴリズム)を使う点は共通しているが、互換性は無い。
Live2ch(VB製)はtar32.dllを使ってるらしい
別にzlib1.dllを使えばいいとおもうが。
VBから簡単に使えるの?
ググれ無能
C/C++インターフェースしかないって遠まわしに言っただけなんだけど。
2ちゃんねるでは日本風の言い回しは通用しない
263 名前:デフォルトの名無しさん[sage] 投稿日:2005/11/19(土) 03:23:43 VBから簡単に使えるの? 265 名前:デフォルトの名無しさん[sage] 投稿日:2005/11/20(日) 03:46:29 C/C++インターフェースしかないって遠まわしに言っただけなんだけど。
ここは難しいインターネットですね
Win32APIはC用のインターフェースしかないけどVBで使えるじゃん? と返せばいいんだろうか
やっとVBでgzipの解凍とレスの表示が出来るようになりました。 スタティックなzlib.libを作成して、それをdllでVBから呼びやすくしてます。 ストリームでの解凍には、対応してないけどgzip解凍のサンプルとして 見てみたい人とかいますか? 開発 VC++6.0, VB6.0
.NET 2.0ならデフォでgzip対応してるんだが
VS 2005はそうなんだ・・・ はやくダウンロードできるようにならないかな(日本語版ね) VB.NETとか少しさわったけど、さっぱりだったんだよね・・・orz
触ってりゃそのうちわかるようになるさ ガンガレ
Ajaxで2chブラウザ作ろうかと思ったけど、 JavaScriptだとファイルをローカルに保存できないから負荷軽減にならないよね(´・ω・`)
Cookieで頑張れ
>>272 なんかWinInetのInternetReadFileで受信したものだとzlibでうまく解凍できないから、一度保存してTAR32でやってる。
でもなんか遅いんだよねぇ…
といことで見てみたいなぁ。
まさか、VBってstdcallじゃないと呼べないとか、そんなこと無いでしょ? だったら、普通にDLL版のzlibにオンメモリで渡すのが一番良いと思うけど。
>281 おおおおお!!!
>>281 現バージョンは開発者的にも便利だw
生のdatや板一覧が見られるのは良い!
起動できん
VBランタイムがいる
>>281 このEXEで「1131884991.dat<>Win32API質問箱 Build37 (791)」を開くと
正常に解凍されません。
gzipの先頭に、「31 66 61 61 0D 0A : (1faa)」が付いてきます。
レス数が多いスレッドについてるような気がします。
ちなみに、上の文字を消すと解凍は出来ました。
1faaはどういった意味なんでしょうか?
ごめんなさい、わかりました。
gzipヘッダのCRC16ですね。
ttp://www.studyinghttp.net/gzip >FHCRC がセットされている場合、圧縮されたデータの直前に、gzip ヘッダについての
>CRC16 が存在する。 CRC16 は、それまでの gzip ヘッダの全てのバイトを含み、
>CRC16 を含まないものの CRC32 の下位 2 バイトから成る。 (中略)
>>288 1F 8B 08 00 00 00 00 00 00 03
FLG = 0x00なのでFHCRCビットは立って無いと思うんだが。。。
それに"1faa"は4バイトだし、0D 0Aがついてるから応答ヘッダの一部の様な気がする。
私も初心者なのでよく分からん。なんでこんなものがついてるんだろう?
chunkedのヘッダだろ
Transfer-Encoding: chunked と関係してるっぽい?
板一覧ってなんか解析しにくくない? ガイドラインとか運営案内の中の板とか特に
295 :
278 :2005/12/07(水) 00:55:32
こりゃどやって落とすんだ??
リファラーがないと駄目みたい
300 :
278 :2005/12/07(水) 22:15:04
datファイルの名前って必ず数字? int型にしようかstring型にしようか迷う・・・
一時期文字が含まれた板があったけど、撤廃された。 数字にする場合、特殊なスレッドが2^32を越えるキーを持っているので注意。 あと、互換板に0で始まる9桁のキーのものもある。 (桁増え時の対処の違い)
なるほど、スレッド924なんかは32bitだとあふれるねえ 9,240,000,000 互換板かあ… stringにしようかなあ
>>304 ファイル名は素直に文字として扱ったほうが良いと思うよ。
この先どうなるかわからないんだし。
たいした手間じゃないっしょ?
16進数になったりしてな。
他の掲示板サポートを考えると String の方がいい。
>>278 ひょっとして読み込みバッファにString型渡して無い? Unicodeに変換される時チャンクの切れ目のバイトが化ける事があるよ。
隠し関数のVarPtr関数でByte配列のポインタ渡すのが唯一の方法だと思う。
それと、VB6でZLIBを使う場合、
http://www.winimage.com/zLibDll/ からzlib.dllをダウソして使う方法もある。
C++に頼らなくてもzlib.dllをVB6から使ってストリーム展開もできるよ。
但し、inflateInit2_()はC/C++からヘッダファイルをインクルードして使えば引数2個で呼べるが、
プリプロセッサ命令で変換してるだけ。ホントは引数は4つ必要。
もし要望が有るなら、4年近く前にVB6で作ったGZIPストリーム展開クラスを俺のホムペにうぷしてもいいけど、
今からでも遅く無いから、VB.NETで作り直す事を強くお勧めしたい。
なぜならば、VB6はマルチスレッド処理ができない。
Win32APIを使えばVB6でマルチスレッド処理もできなくは無いけど、別スレッドの中ではVB6の組み込み関数は一切使えないと思って欲しい。
でも、2ちゃんブラウザともなれば、別スレッドで文字列処理をする必要がある。
つまり、別スレッドではByte配列をループで舐め回すような文字列処理になってしまう。
Cのstrcut()やsubstr()を自前で書くような話になる。
しかも、別スレッドのデバッグは困難極まる。
VB6のデバッガは一切使えないどころか、別スレッドがエラーで止まればVB6.exe自体が強制終了してしまう。
俺は4年近く前にVB6で2ちゃんブラウザを作っていたけど、マルチスレッド処理がどうしてもできなくて開発を中断してしまった。
上記のGZIPの処理とか、winsockを使って非同期ソケットでの通信とか、レス表示画面をウィンドウクラスの登録から始めたりとか…
Monazilla参加者のDelphi使いを「充実したクラスライブラリが有る言語ってうらやましいな〜」って思いながら、
VB6のみで半年以上かけて作りこんだけど、結局マルチスレッドで挫折した。
VB6製2ちゃんブラウザはLive2chのみで、しかもソース非公開。
だから、一から十まで俺自身で作り上げた。でもダメだった…
だからあえて言わせて欲しい。Visual Basic 2005 Express Editionでやり直した方がいい。
それなりに動くのができたらここでさらしてもいいですか?
てゆーか、是非そうすべき。 ぞぬもJaneもLive2chも、ここ見て作った人がここで発表して 感想とか聞きながら完成度あげてったでしょ。 すぐ専門スレに移ったけどさ。
宣伝するつもりぢゃないけど、私もA Boneを作る時 ここで質問して教えて貰いながら作りましたよ。 不遜な言い方になるけど、専用ブラウザ作りは結構難しいです。 でも、少しずつでもコツコツ続ければ、きっと誰かが使ってくれるし 期待もしてくれるし、協力もしてくれる。 >308 > だから、一から十まで俺自身で作り上げた。でもダメだった… ずっとこのスレは見てるけど、こういう話が正直一番心が痛む。 VB製ブラウザも少ないけど、BCB製も少なかったから分かるんだけどね。 「かちゅ〜しゃみたいに、前回の位置へスクロール」ってのがずっと出来なくて 2年間Web検索を続けたっけ、やっと実現出来たよ。 逆噴射氏もまたいつか、コードを引っ張り出したりして欲しいな。
じゃぁ今度晒してみるよ
.NET Framework2.0になって、GzipStreamが出来たのは、2chブラウザ開発にとってはかなり好都合
> トリップ生成クラス 期待
GetChunk で止るね。 記憶違いだったら悪いけど、String変数には制御文字入らなかったような? バイト配列で検索したほうが良いかも。
よーし俺もバリバリコード書くぞw
321 :
デフォルトの名無しさん :2005/12/17(土) 11:22:01
2chビューアでRangeGetって出来る?
>>319 Stringには制御文字でもOK。
Byte配列じゃなくてStringにしたのは、InstrB()を使いたかったから。
落ちた原因は、gzipで帰ってきたデータを展開する前に文字列として扱おうとしてたから(w
んで、Accept-Encoding: gzipを削ってみて強引に動かしてみても、人大杉が帰って着て落ちてしまった…
何よりも、レス取得を逐次処理にしてるのに、チャンク→生dat→内部形式の変換に時間かかり過ぎてユーザーの入力を処理できてない。
DoEvents噛ませて処理させたいけど、ユーザーに画面スクロールさせられると、メインスレッドが描画命令で手一杯になる。
ソケットは非同期だけど、コールバック関数はメインスレッドで処理してるから、
ユーザー入力の対処に時間かかり過ぎると、非同期ソケットが返したチャンクを読み損ねる ( つДT)
ユーザーの入力を処理できない逐次読み込みなんか意味無いよ…
悲しいを通り越して情けない。
もう、作った本人でさえお手上げ。
VB6には2度と触る気にもなれないんで、.NETでやり直してます。
323 :
デフォルトの名無しさん :2005/12/17(土) 20:27:58
新たな2ちゃんねるブラウザの登場に期待age
一人1っこづつ作ろうぜ
え、俺も作るの?
Monazilla.orgはもう更新しないのだろうか。。。
>>326 MonazillaのMLで、「復活させる為に案を出し合おうぜ」って話が先月に出たけど、1ヶ月間一切進展無し。
誰が更新をするかが問題ですね
wikiでいいんじゃね
比較表みるとDelphi製が多いねぇ
無料での開発ソフトってのが大きいんじゃない? VS2005Expressも今なら無料でDL出来るし、 VB.NETなりC#なりで開発すれば割合が増えるかも? でも、Janeが強いからな・・・JaneをVB.NETかC#で作ってみるかね? VS2005の使い方にも言語の勉強にもなるだろうし、仕様考えなくて良いのが嬉しいw
.Netみたいな大きなランタイムの要る奴らはあんまり普及しそうにないなぁ。
ランタイムなしで、手軽に作れるってことを考えると やっぱりDelphi? C++以外でネイティブ出力できれば、ちょっとはVSにも流れるかな
>>333 ランタイムをわざわざ配布しなければいけなかったのは、VB6の頃の話。
.NET FrameworkランタイムはWindows Updateで実質的に自動インストールされるよ。
だから、.NETプログラマはランタイムの配布を心配する必要は無いよ。
.NETはバージョン違うやつを共存できない
できますがなにか?
>>336 は互換性が無いって言いたいんじゃね?
微妙に互換性があるか、VB6のランタイムもそうだったけど。
>>335 最近買ったUPDATEパッケージXP SP2には.NET1.1入ってなかった。
推奨の高速インスコでも入ってこない。
いまさら.NET1.1は入れたくないから.NET2.0でも入れるかな。
板ツリーコントロールで必要だったから、iniファイルの読み書き処理書いたんだけど、 iniファイル読み書きクラス単品で欲しい人いる?需要ある?
>>338 古い機能を切り捨てたがるのはMSの営業方針なのか…(;´Д`)
twintailがどれくらい人気あるのかな。 C#で作ってみるのも面白いかも。。。
板ツリーコントロールできた。 感想キボンヌ。
.NETは基本的に2.0で作ったものは2.0、1.1で作ったものは1.1で動かさなきゃだめなんだが 「バージョン違うやつを共存できない」ではなく「共存させなくてはならない」 まあ、1.1で作ったソフトはたいてい2.0でも動くけど。
>339 今、まさに必要!
JaneLovelyの作者がC++でJaneを書き直すみたいなんでちょっと期待。
347 :
278 :2005/12/22(木) 01:32:33
板ツリーは似たようなのが300にもあるよ(VB6だけど) HDDアボンした… ソースを途中までだけど上げておいて良かった。
subject.txt取ろうとしたら人大杉。 どんなリクエストヘッダなら取れるの・・・(;´Д`) だれか教えて・・・
>>349 た、ただ単にURL間違えてリクエスト出してただけでした・・・orz
吊ってきます・・・
ワロタw
URL間違えてもステータスコード200、人大杉返すのね…
>>352 どんなライブラリを使ってるのか知らんが
存在しないURLをリクエストすると、302が返ってきてそれでリダイレクトして200になる
そのライブラリは自動でリダイレクトする機能がついてるんじゃないか?
>>353 どうやらWinInetAPIと.NETのWebRequestはリダイレクトされる模様。
WebClientもWebRequestのラッパーだから同じくリダイレクトされると思われ。
「Http専用Socketラッパークラス」みたいなのを作る方がいいかも。って言うか製作中。
いちいちHttpRequestHeaderクラスの各々のプロパティに値を代入するよりも、リクエストヘッダをベタ書きできる方がソースも見やすくなるだろうし。
.NETのHttpWebRequestなら、AllowAutoRedirectプロパティをfalseにしておけば大丈夫
>>355 そんなプロパティがあったとは(汗
ふっ、認めたく無いものだな。自分自身の若さゆえの過ちというものを…(;´Д`)
357 :
352 :2005/12/27(火) 13:51:33
dクス。 確かにWinInetAPI使ってた。 InternetOpenUrlにINTERNET_FLAG_NO_AUTO_REDIRECT指定して実行すればいいみたい。
早速つかってみました。 .NET1.1いれるの面倒なんで、2.0で動かしてます。 とりあえず動いてます。 OpenJaneライクで操作はしやすいですね。 板の絵がでるのが素敵w あとは操作性の問題でしょう。 1.1入れてないから、この動きが正しいかどうかはわかりませんが。 こんなの作りました!とブラウザ比較のとこで晒すなりして評価をもらってください。 ここでもらえる評価は、この関数がおかしい!って評価でしょうから。
ありがとうございます! 自分も普段は2.0上で使ってます。 動きが変なのは、未実装な部分が大量にあるのでその部分かな まだ常用できるレベルに達してないので、もうしばらくひっそりと作り込んでみます。
あと起動速度にはこだわってみたんですがどうですか? 別スレッドに初期化処理やらせてみたりしたんですがあまり意味ないのかな・・・ > ここでもらえる評価は、この関数がおかしい!って評価でしょうから。 自分的にはこっちの方が興味あったりw
>>358 自分も2.0で動作確認。
板の看板表示がクールでいい感じですね。
トリップのプレビューには拙作のトリップ生成クラスを是非(w
スレ一覧が表示できねぇorz XPSP2 + 1.1
2000+1.1だけど、スレ一覧取得しようとすると実行時エラーが出る。
2.0では動くが1.1では実行時エラー? 「知らず知らず2.0の機能を使っちゃった」と仮定するなら1.1で動かないのは納得いくが、1.1のコンパイラでコンパイルが通るはずが無いし… なんでやねん(;´Д`)
スレッド一覧は私も表示出来ないですね。 板一覧ツリーからクリックして、スレッド一覧にタブは出来るのだけど 中は空欄のままで、何と閉じて開いてを繰り返しても同じ。 タブに板名は出る。 そのままタブをダブルクリックすれば、表示されるのですけどね。 仕様というか、開発段階で、未完段階だからかなぁとも思ったのですけど そう考えるにはちょっと不自然ですし、バグっぽいかなと。 Win2000 + .NETバージョンってどこで見るんだ?(Winアップデートで素直にUPしてます)
javascript:alert(navigator.userAgent) とIEのアドレスバーに
368 :
358 :2005/12/31(土) 14:59:02
なんかまともに動いてないみたいですね・・・orz 正月はちょっと忙しいですが適当に調べてみます。 自分が意図してる動きを書いておきます。 1.板一覧取得 2.板一覧から板をクリック 3.タブが出現し、中身はまだ空 4.右上の「更新」ボタンorタブをダブルクリック 5.スレ一覧が表示される 一度スレ一覧を取得しCacheフォルダにファイルができた後は 板一覧からクリックしただけでキャッシュされているスレ一覧が表示されます。
>368 あ、意図した動きだったのね、失礼。 この意図なら、問題なく動いてました。
意図的な作りだとしたら最悪なUIだな・・・w
371 :
358 :2005/12/31(土) 15:38:39
あと、まちBBSなどはまだ対応してないです。
>>362 ぜひ使わせていただきます!!
>>369 すいませんわかりにくくて・・・
わかりにくいと言うことは仕様に問題があるってことなので、なおします
>371 > わかりにくいと言うことは仕様に問題があるってことなので、なおします え? 板一覧をクリックでタブが出来て、中は空というのは、開発途中のための 確認のために用意されたワンクッションではなかったの? タブ等と作成ロジックとDLや描画処理を個別に検証するためだと思ってました。 私の考えが正解とは限らないとか、製作者の自由ですよとか、儀礼的なことは 置いておいて、スレッド一覧に表示されるまでに2アクション必要が正式な仕様だとすると ちょっとその意図が見えない気がします。 タブだけ作成されて中身がない状態に、ユーザーに与えるメリットが見えてこないと言うか。 私がここまで口出しするのはどうかと思って話しませんでしたが、 全体的には良く出来ていますし、おっしゃる通り、Jane系のインターフェースで 分かりやすくはなっています。 ただ、このままでは、このソフトの存在意義が見えてこない面が気になりました。 ぶっちゃけて言えば「Janeで良いんぢゃないの?」という感じです。 このソフトの求める路線みたいな物が欲しいなと感じました。 そういう面では、ツリーをポイントした時に看板画像がポップアップされるのは 良かったと思います。(パクろうかと思った(^-^; ) 画像ポップアップのフェードイン処理もカッコ良かったので、こういう方向で 伸ばしていくのも一つの方法かもしれないですね。 偉そうなレスですが、何かの参考になれば。
>372 ×タブ等と作成ロジックとDLや描画処理を個別に検証するためだと思ってました。 〇タブ等の作成ロジックとDLや描画処理を個別に検証するためだと思ってました。
>372 その読みづらい文を何とかしてくれ。
>>372 板の開き方については、自分のJaneの使い方に合わせた感じです。
(あまり深く考えてなかった)
> このソフトの求める路線
この辺は大丈夫なんじゃないかと思ってます。色々やってみたいことがあるので。
わざわざ新しく作るのに今あるものと同じもの作っても意味ないですもんね^^
ただ今のバージョンは「特色ねぇなぁ」と思ってたので、ドキっとしました
> 看板画像 画像ポップアップ
この辺は自分の持ってる方向性みたいなものですね。まだこれだけしかないですが。
こういう部分は書いてて楽しいので、楽しみながらまたーりと続けられたらなぁと。
モチベーションも保てるし。
>>352 の看板ポップアップは面白いね。
今のJaneに組み込みたいけど、Delphiは使えねぇ・・・
C++作のOpenJaneほしい〜!
書き込みてすと送信。
看板ポップアップが流行しそうや予感。
>>358 俺もパクッていいですか?
379 :
358 :2006/01/02(月) 12:08:52
パクッってかまわないですよ ^^ 自分もいろんなものを参考にして作ってるので・・・
書き込みてすと送信。
書き込みてすと送信。
失礼。間違えて送信してしまいました(;´Д`)
>>379 感謝です。
あー、、懐かしい流れだなー、、
一応守ってるよ。 VBだったらRegExオブジェクトで正規表現扱えるし
何だか偉そうなサイトだな
偉いんだよ。
ほっしゅほっしゅ
2ちゃんのあぼーん検出って前回読んだ1バイト前から読んで、 改行コードじゃなかったら、あぼーんと判定するけど、 したらばみたいにhtmlでしか取れないスレッドのあぼーん判定は どうやればよいでしょうか?
仕様も読まずにカキコ バイト単位で比較してズレてたらあぼんでいいんじゃないかね
>>391 レス番で範囲指定するしたらばはバイト数で範囲指定する2chのようにあぼーんで
取得範囲がずれる事はないので、気にしない。
したらばで透明処理があったかどうか、あったとしてrawmode.cgiを使った読み込みでも
番号ずれが起こるのかどうかは忘れた。
394 :
391 :2006/02/05(日) 22:08:03
>>393 すみません、書き足りませんでした。
一度最初から読んだら、次回は当然続きから読むわけですが、
おっしゃるとおりバイトがずれることはありません。
ただ、続きから読むので前回取り込んだ分のレスのどれかが
サーバー上であぼーんしてても
キャッシュの方はあぼーんでないままになるってことです。
これはそのままでいいのかな。
解決するには常に最初から読むしかなさそうだし。
>>394 意図は分かってるんだけど、気にしないしかない。
想像通り最初から読み直すのが解決策だけど、
それだけのために毎回読み直すような事は推奨できない。
396 :
391 :2006/02/05(日) 23:37:05
サーバーの負荷高めるよりは、あぼーんすべきレスが そのままになってる方がマシって結論ですね。 しかし、ちゃんとこのスレ見てくれてる人がいて安心。 monazilla.orgはもう動いてないみたいですし・・・
年末に復活する兆しはあったんだけど、結局頓挫したっぽいね>monazilla 残念
monazillaの管理人がすみません忙しいですとだけ言い残していなくなって くれやがったから。 いっそ完全に沈黙してくれてたら無視して話を進めることもできたのに。
虚栄心だけは人一倍だよね。
2ch_Xって全部の板に導入されてるの?
今どんなブラウザがあるかって、まとめてるサイトあるかな? 仮仮仮仮と2ch browser project MacOSXくらいしか知らんのだけど、 他にあれば教えてください。。。
確か、圧縮されていない場合もあったはず。(特に最近の分?)
405 :
402 :2006/03/09(木) 09:51:08
というと非圧縮でもdatファイル自体は必ずあるのかな?
>405 そうとは限らなかったように思います。 datをまず取りに行き、なければ、.dat.gzで試みるという感じになるかと 思います。
逆じゃね?
ああ、逆の方が良いかもしれない。 .dat.gzを後付け対応したA Boneでは上記の形になっていたんだ。 二度手間になる率がどっちが高いのか調べてないので何とも言えないけど スレッド丸ごと取得なら、事前に圧縮されている.dat.gzを優先するべきかな?
409 :
402 :2006/03/09(木) 22:04:38
ああいや
>>405 で言いたかったのは、過去ログHTMLがある場合
datも圧縮、非圧縮最低どちらかが必ずあるのかなと。
存在の有無確認としては
dat.gz、dat、htmlの順になると思いますが。
過去ログ二変換されてたらdatはないよなあ
JBBSの post/get の仕様ってどうなってるんでしょうか? 資料等公開されていないのでしょうか?
・HTML化された過去ログはhtmlとdatの両方がある。 ・datは ".dat" か ".dat.gz" のどちらかである。 ・".dat" にアクセスするときも、gzipを許可すると圧縮されて送られてくる。
.dat.gz と .dat 、どちらを優先するか。 最近はほとんどHTML化されてないけども、されるときは、 見た限り全て .dat なので、最近のログに限って言えば .dat を優先するのが効率的。 HTML化がそれなりにされ、.dat.gz が主流だった時代のログ、 更にそれ以前の、圧縮なんて全くされていなかった時代のログ、 はて、どのログへのアクセスが多いのだろうか。
415 :
402 :2006/03/11(土) 09:29:12
>>412 ありがとうございます。そちらを見てみます。
417 :
402 :2006/03/12(日) 23:11:01
418 :
402 :2006/03/12(日) 23:38:27
結局、何をてこずってるのかというと・・・
あるスレに、どこかのスレへのリンクがあるとする。
このスレの
>>1 みたいに過去ログへのリンクとか。
リンクは
http:/..../test/read.cgi/..../の形式で書いてあるとする 。
通常リンクを書くときはread.cgiを含んだ形式のはず。
可能性としてそのスレッドは、
-ライブスレッド
-●でしか見れない
-過去ログdat
-過去ログdat.gz
-過去ログhtml
のいずれか。
これをどう読むかを考え中です。
419 :
402 :2006/03/12(日) 23:41:31
今、考えているのは
-URLを解析してライブスレッドのdatを直読みに行く
--あれば、そのまま表示して終了
たとえば、このスレのpart1は
http://pc.2ch.net/test/read.cgi/tech/981726544/ だけどライブと仮定すると
http://pc8.2ch.net/tech/dat/981726544.dat へアクセスすることになる。
もしリンクがサーバー移転前のもので、まだライブスレッドならアクセスできる。
-datがない場合
-リンクのURL(read.cgi)でそのままアクセス
--過去ログ倉庫に保存されていますの場合(●でしか見れない)
---offlaw.cgiで読みに行って、あれば表示して終了
---なければ、「スレッドありません」、とエラー表示して終了
--隊長!過去ログ発見しましたの場合
---過去ログHTMLのリンクが書いてあるので解析
---それを元に過去ログdatを読みに行って、あれば表示して終了
---なければ過去ログdat.gzを読みに行って、あれば表示して終了
---これでもなければ過去ログhtmlを読みに行って、あれば表示して終了
---これでもなければ、「スレッドありません」、とエラー表示して終了
もっと負荷減らせそうな良い方法ありますかね?
最初はライブのdatじゃなくread.cgiにアクセスして判断するほうがいいのかな。
421 :
402 :2006/03/13(月) 00:48:49
Monazillaは名乗ってます
2ちゃんとーくにも、dat,dat.gzのいずれかがありますと書いてますが、
裏を返せば、やはりどちらかしかないことがあるということですよね。
委員長さんは、
>>418 の件、どのような手順でスレッド取得してますか?
>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 :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を使用するといいです。
急浮上?
>>422 ●の唯一公式な機能を使うのに必要なんだからofflaw.cgiの負荷は全く気にする必要ないべ
427 :
402 :2006/03/15(水) 01:44:56
うん、それもそうね。 けど、offlaw先に見に行くよりはdat,dat.gz,offlawの順の方が 仕組み的に楽だったんで。もう組んじゃったし(笑
HTML化されたスレをofflaw.cgiで見ようとすると、 -ERR 過去ログ倉庫で発見 ../tech/kako/981/981726544.dat.gz とエラーになるので、先にofflaw.cgiを見て、 あれば良し、 HTML化なら過去ログ位置を得る、 「そんな板orスレッドないです。」ならおしまい、 という処理をしてもいいかもしれない。 でも面倒。
429 :
402 :2006/03/15(水) 16:04:52
結局、offlaw使えるのは●ユーザーだけなんで。 ●もってない人のこともかんがえて処理すると 先に述べた方法が一番かと。
だねー。
あえて付け加えるなら、●ユーザーであっても 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ブラウザてありましたっけ?
"-ERR 過去ログ倉庫で発見"を処理しないブラウザで過去ログが取得できないケースとか offlaw.cgiで送られてくるほうが新しいというケースとかあった気がする。
JBBSのsubject.txtは、なぜ最後の行に1行目と同じ内容の物が出力されるのだろう。 全板でそうなら最後の1行スキップすればよいのだが・・・
>>434 最後の行と最初の行が同じだったら
最後の行を削除したらいいじゃない
あ、同じかどうか判定して・・・って意味で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° .゙゙゙!!!!゙゙゙
>>435 うん、そうした。
でもなんでこんな仕様になってるのやら。
RSS配信開始で新しいプロジェクトがいっぱい出てくる予感 ・・・monazillaとは関係ないところで・・・
440 :
デフォルトの名無しさん :2006/05/09(火) 21:44:21
t
monazillaを引き継いでみる。
442 :
デフォルトの名無しさん :2006/05/16(火) 18:41:41 BE:7466483-
monazillaプロジェクト+aの勢いで
443 :
デフォルトの名無しさん :2006/05/16(火) 18:45:14
444 :
デフォルトの名無しさん :2006/05/16(火) 21:43:14 BE:9955384-
名称は「Monazila Japan」に決定。
otu
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 :2006/05/26(金) 19:02:37
>>448 ご指摘ありがとうございます。
> C#って.NET2.0なら自動でgzipを展開してくれる機能があるから
> それを利用して2chの負担を減らそう。
C#でgzipの圧縮・解凍ができるとは知りませんでした(汗
早速調べてみます。
ところでgzipを使ったときもログの差分取得は可能でしょうか?
そもそもgzipを使ってログを圧縮しているなら、わざわざ差分取得しなくても
鯖には大した負担はかからないでしょうか?
今gzip圧縮ってしてるの? 転送量よりもCPU負荷の方を軽減したいって感じだったと思うけどうるおぼえ。
Content-RangeとAccept-Encoding:gzipを同時に指定すると、 httpの意味上からは、「gzip済みのdatファイル」の途中から しか送ってくれないので役に立たない。
453 :
447 :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("
http://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");
のところをコメントアウトすると問題なく実行してログを取得してくれます。
差分取得するときの要求ヘッダの与え方に何か間違い等はありますか(´・ω・`)?
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 :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より便利だと思いますよ。
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は不要。
スレ立て subject= ←スレッドのタイトル FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい hana=mogera ←追加。常にmogeraを送っとけばいいのかな。
Cookieは不要と書きましたが、sports2はCookie無しじゃ書けないので Cookieも今までどおり必要ですね
>>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.
クッキー認証、クッキーの必要なサーバーなら出る
sports鯖とか
http://sports2.2ch.net/wc/ http://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 :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"の部分が間違っているんでしょうか?
すまん、誤爆した
466 :
447 :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("
http://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();
>>466 いや、HttpWebRequest/HttpWebResponseの場合はHeaders.Add("If-Modified-Since",○○)
ってやっちゃ駄目なのは仕様。IfModifiedSinceプロパティを使う。
んでWebClientはHeaders.Add("If-Modified-Since",○○)ってやっていいはずなんだけど
実際は出来ないからバグかもしれない、ってことです。
468 :
447 :2006/05/27(土) 19:03:48
>>467 あ、そういうことでしたか。早速IfModifiedSinceプロパティを使わせていただきました。
System.Net.HttpWebRequest webreq =
(System.Net.HttpWebRequest)
System.Net.WebRequest.Create("
http://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
すごい惨めな気持ちになったぞ! どうしてくれる!
>>468 If-Modified-Since ヘッダって言うのは「この時間よりあとに未更新だったら送信しないでね」って意味だから
差分データを取得するにはさらに Range ヘッダを使わなければいけない。
HttpWebRequestの場合はAddRangeメソッドを使う。
>>468 > Range: bytes=ローカルDATのファイルサイズ-
はどこ行ったんだよ
かぶったorz
>>468 >関係ない話ですが、もし可能ならレス番号を指定してそれ移行のデータを要求できれば
>便利そうなんですが2ちゃんではそういうものには対応していないんですかね。
2000年8月危機の際にオープンソースとなり有志の手で改良された旧版 read.cgi には
raw モードとしてその機能が実装されたが、現在の read.cgi には実装されてない。
2001年ではなくて?
475 :
447 :2006/05/27(土) 22:18:47
>>470-471 webreq.AddRange((int) fileSize);
と指定することで差分データ取得できました\(^o^)/
ちなみにIf-Modified-Sinceヘッダをつけてもつけなくても、
またでたらめな時間や未来の時間にしても取得する差分データ
に変わりはありません。AddRangeさえ指定すればIf-Modified-Sinceは
特に指定する必要は無いんでしょうか?
>>473 便利な機能は無くなってしまったんですか(´・ω・`)
あぼ〜んがあった場合などでも問題なく差分データを取得できると
思われるので重宝すると思うんですが・・・
鯖の方でいろいろやらなきゃいけないし、 FOXがコードをDSO向けにリファインした時に無くした予感
ハナモゲラ絶対必要なの?
あぼーんがあったときに、ローカルのデータを上書きしてくれるのでありがたい
例えばレス479まで取得しているスレでリロードすると、 479までのサイズでRange〜とするわけだけど、その時に 新規投稿が無かった場合、.datファイルにはRange〜で指定した 部分は存在しないので406エラーとなる。 そこで、If-Modified-Sinceを付ければ、新規投稿が無い時には 304 Not Modified で新規投稿が無いことがわかる。 406を新規投稿無しと解釈すれば良いじゃないか、とも思えるが、 レスが削除された場合等にも、.datファイルのサイズが既得分より 減って406が出うるので、それと区別ができなくなってしまう。 ブラウザを配布するとかではなくて、個人でどうにかしたいだけなら お好みでどうぞ、とも言えるが。
480 :
447 :2006/05/28(日) 15:51:01
>>479 なるほど、If-Modified-Sinceを活用するとあぼーんの検知もできるようになるということですね。
ちなみに先ほど各種条件を試してみましたところ、
新規投稿がなく、If-Modified-Sinceを指定しなかった場合
416 RequestedRangeNotSatisfiable
が返され、
新規投稿が無く、If-Modified-Sinceを指定した場合は
304 Not Modified
が返されました。
あぼ〜んがあったと想定するためRange〜を100バイトほど多めに指定し、
If-Modified-Sinceの時刻を過去に戻したところ(あぼーん更新で更新時刻が先に変更されたとシミュレートするため)
416 RequestedRangeNotSatisfiable
が返されました。
細かい違いはありますが、
416が返された場合はあぼ〜んがあったと推測し、全ログを取得し直すようにすればいいわけですね?
あ、416だった(ハズイ
そっすね、全取得になるかと。 ブラウザとしてだと、自動再取得の前に、何が削除されたか 知っておきたい、という需要もあるけどね。
Range指定にIf-Modified-Sinceを付加する理由として ひとつは、HTTP/1.1の旧仕様では416が規定されておらず Rangeが範囲外を指定しているとRangeを無視して200を返していたというのがある。 少なくとも、このスレの初代が出来た頃の2chのapache(1.x)はそうだったし 互換板等ではまだそういう鯖も存在するかもしれない。 もうひとつは、 あぼーん検出のために末尾の'\n'等数バイトを含めてRange指定で取得すると 未更新の場合でもファイルの読み書きが発生して 鯖に本来不要な負荷をかけてしまうという点がある。 If-Modified-Sinceを併用することで、これを防ぐ。
484 :
447 :2006/05/29(月) 19:29:37
2ちゃんのスレッドを取得したときに考えられるケースとして、 a) 正常に取得 b) URLを間違えてしまった c) すでに1000を超えていた d) すでに過去ログとして倉庫落ちしてしまった e) 人大杉 の5通りくらいあるかと思います。いずれも帰ってくるステータスコードは 200 HTTP_OKなんですがみなさんどうやってそれぞれのケースを判別されてますか?
それは、 本当は302が返っているのに、リダイレクトされているだけ
c)は違うだろ(まだdat落ちしてなければ)
>>484 b)
AllowAutoRedirect = false
datファイルが302 Found が返ってくるかどうか。
d)と比べたいならread.cgiにもアクセスする。
c)
datファイルが1000行あるか調べる
d)
AllowAutoRedirect = false
datファイルが302 Found が返ってくるかどうか。
b)と比べたいならread.cgiにもアクセスする。
e)
datファイルで人大杉?
ProxomitronとかEtherealとかつかって、既存の2chブラウザが何やっているかを把握すべし
>>492 CGIが動く負荷とdatファイルを読み出す負荷は10〜100倍ぐらい違うんだよ
>>493 なるほど、2ちゃん規模の掲示板だと2ちゃん方式は必要悪というわけなのか。
したらばはdat公開してないよ IPとかもdatに保存してあるから
> IPとかもdatに保存してあるから ((((((;゚Д゚))))))ガクガクブルブル
そんなに怖がることはないだろ
>>463 いまはsubmitってチェックしてないのかな?
間違えて「書き込む」をUTF-8でエンコードしてたけど書き込めてた。
>>455 GET /newsplus/subject.txt HTTP/1.0
Accept-Encoding: gzip
Host: news2.2ch.net
User-Agent: Monazilla/1.00
Connection: close
と、「と〜く2ちゃんねる」通りにリクエストしても
datファイルはプレーンテキストで送られてくるのですが、
どの鯖ならgzipで返ってくるんだろう。
リクエストの仕方が間違ってる?
おかげで、gzipでdatを受信した場合の動作確認ができない。
普通の応答は解凍できてるから、たぶん大丈夫だとは思うんだけど・・・。
HTTP/1.1?
news2?
telnetしてみた GET /newsplus/subject.txt HTTP/1.0 Host: news2.2ch.net Accept-Encoding: gzip HTTP/1.1 200 OK Date: Wed, 07 Jun 2006 05:36:10 GMT Server: Apache/2.0.58 Last-Modified: Wed, 22 Mar 2006 02:11:13 GMT ETag: "16310f0-0-40f8be7f05240" Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip ← Content-Length: 20 Connection: close Content-Type: text/plain; charset=shift_jis ただ単に中身が無いからgzipになってないように見えるだけでは?
503 :
499 :2006/06/09(金) 03:18:20
>>499 はと〜く2ちゃんねるのをコピペしただけなので、
実際には運営情報板とかでテストしてます。
>>502 おお、telnetで試してみたらgzipで返ってきました。
でも、全く同じメッセージ送ってみてもWinsock(2.0)使った
自作プログラムではプレーンテキストが返ってくる。
う〜ん、何が違うんだろう。
> User-Agent: Monazilla/1.00 ヘッダーにこの情報を記述しなくてもDATが取得できたんだけど これっておまじない程度のものなの?
過去ログにさんざん書かれてますよ。
おなじないって言ってるうちは理解できてないってことだな
おなじない・・・・
おなじないヽ(`Д´)ノウワァァン
かくごしろ
510 :
504 :2006/06/27(火) 22:58:57
う〜ん・・・ 特にいらないのか( ´・ω・)・・・
そういえば、NISかなんかがgzipを無効にするとかいうのもあったっけなー。
512 :
デフォルトの名無しさん :2006/07/01(土) 20:29:40
Delphi6+Indyで簡易2chブラウザを作っています。
読み、書きはできるようになりましたが、●が書き込みに反映されません。
ちなみに認証方法は
ttp://kage.monazilla.org/system_DOLIB100.htmlを参考にして 、
セッションIDを取得するところまではできています。
・セッションIDの取り出し
IdHTTP1.AllowCookies := False;
IdHTTP1.Request.UserAgent := 'DOLIB/1.00';
IdHTTP1.Request.RawHeaders.Add('X-2ch-UA:'+Myname);
IdHTTP1.Request.Connection := 'close';
Contents.Text:='ID='+LGId+'&PW='+LGPas;
Respons:=IdHTTP1.Post(url, Contents);
Sid := Copy(Respons,pos('=',Respons)+1,length(Respons));
//showmessage(Respons);で'SESSION-ID=Monazilla/1.00:〜〜〜'という文字列が表示されます。
//showmessage(Sid);では'Monazilla/1.00:〜〜〜'
//一番最後の文字は非改行文字であることを確認
>>95 ・書き込み時postするデータ
IdHTTP1.Request.Referer := SavUrl+ItaUrl;
IdHTTP1.Request.UserAgent := copy(Sid,1,pos(':',Sid)-1) +' ('+Myname+')';
Contents.Text:='bbs='+Ita+'&key='+Key+'&sid='+Sid
+'&time=1&hana=mogera&submit=書き込む&FROM='
+Name+'&mail='+Mail+'&MESSAGE='+Honbun;
Result:=IdHTTP1.Post(url, Contents);
書き込み自体はこれで成功しています。
Indyのことはわからないから的外れな事いってたら悪いんだけど URLエンコードはされてる?
514 :
512 :2006/07/01(土) 21:15:02
すみません。
>>95 を見て
Sid := Copy(Respons,pos('=',Respons)+1,length(Respons));
↓
tmp1 := pos('=',Respons)+1;
Sid := Copy(Respons,tmp1,length(Respons)-tmp1);
に変えたのを忘れていました。それでも症状は変わらずです。
>>513 indyの内部で行われているようです。
名前欄の●が○になる以外で書き込んだ内容は正常に反映されていますし。
確かSID末尾の改行がどうのというところで引っかかっていた人が過去に居たような。
>>512 >>514 Proxomitronとか、あるいはetherealを使って
流れているデータを見るのが解決の近道
517 :
512 :2006/07/02(日) 04:16:31
で、でけたー
Indyのエンコード部分がいろいろとおかしいようなので封印して自前でURLエンコードしたら反映されました
>>513 >>515 大変参考になりました。ありがとうございます。
ひどい過疎
見舞われましたwwwwwwwwwwwwwwwwwwwwww
IEコンポーネントはVistaでも正常動作するか確認情報ってある? 使ってる人は少なくないと思うがそれらしい話を全く聞かないもんで
monazilla.org ってどうして更新されなくなってしまったの?
ステータスが 302 Found → 302 Moved Temporarily になっただけでまともに動かなくなったブラウザもあったぐらいだし 2chブラウザ作者は少しはHTTPを知っててほしい
実装が面倒
2ch専用なのにHTTPに準拠する必要はない 速度やサイズや生産性が悪化するだけ
あとリロードのたびに1バイト読み取るバカ2chブラウザは何とかならないのかね
>>525 そんな糞プログラムが氾濫してるのか
知らなかった
2chという糞に合わせなきゃならんからな。 現実はたいへんなのよ。夢だけ語ってたら2chやれませんw
2chといえどもhttpの上に成り立ってるんじゃないのか
ただ人大杉とかdat落ちしたとかのエラーは独自だからね。 フォーマットも統一されてないし。
>>532 デマ流すな
で、普通の「まっとうな」2chブラウザは、
2chだけでなく、外部の実況板等の互換板にちゃんと対応している。
それは当然、httpに則っているということ。
もちろん302ではなく404を返すようになっても全然問題ない。
「httpに準拠しなくて良い」なんて書いてるのは
まともな2chブラウザを作ろうとしたことも無い奴のたわごとだから。
wikipediaより >準拠(じゅんきょ)とは、合致はしていないが、概ね(準)よりどころとしている事(拠)。 そういうことなら同意するよ
あんた、おふらうって知ってるかい?
2chがさくらとかのレン鯖(と一部ひろゆき自宅)で運営されていた時代を知らないで 「昔」を語られても困るわけですが、 レン鯖がhttp以外で運用されていたとでも思っているのですかね。 まさかhttpとHTMLを混同するわけないし。
独り言をこんなところに貼られても困る
まあ、まともな人はちゃんと作ってるから問題ないしね。 まともじゃない人が適当なこと(httpじゃないとか昔は違ったとか)言ってるだけだから。
httpじゃないというのならdatはどうやって取得しているのか知りたいものだな。。。
話が食い違ってるな HTTPをちゃんと実装することと HTTPを利用してることは全然違うぞ
2chがHTTPをちゃんと実装してるかって話? そりゃ、そんなわけないだろ。 2chはapacheを使っているだけで、 httpを実装しているのはapache.orgなんだから。 「2chはhttpじゃない」「昔は違った」なんて話は どう見ても「クライアント側がhttpをちゃんと処理しているか」とは なんの関係も無いし。
おまいらどう見てもhttpとHTML誤記した
>>525 に食いつきすぎですw
>>523 Live2chか
今は知らんが、あのブラウザは当時
>「302 Moved Tem,prarily」でもdat落ちと判断するようにした
って対応して、rootが「数字だけで判断するべきかと・・・」ってあきれてた
BBSPINKのフォルダ分けってどうやればいいの?
そういえばソフトウェア板のブラウザ比較スレで新ブラウザあがってたな
549 :
デフォルトの名無しさん :2006/10/13(金) 19:42:15
一応、上げときます。
なんで今更ww
safariのRSS機能で見ようとするとsafariが固まるんだが……
あ、>548のアドレスがserver.maido3.comに飛ばされるからだ スレ汚しスマンコ
556 :
デフォルトの名無しさん :2006/10/20(金) 10:52:47
最適化の結果、浴槽で眠りながら脱糞することになりました。
夢精は切り捨てられたか…… 空ループみたいだな
560 :
デフォルトの名無しさん :2006/11/09(木) 17:53:54
ん?
livedoorレンタル掲示板 開発日記:したらば掲示板”専用ブラウザ開発者様へのお知らせ”
http://blog.livedoor.jp/bbsnews/archives/50283526.html > 最近、2chブラウザ利用ユーザから問い合わせが増えてきており、
> 問合せ内容の調査の結果「read.cgi」経由でデータを取得しているソフトが多いことが判りました。
>
> したらばでは 「read.cgi」よりサーバの側処理コストが低く、フォーマットも単純な
> 「rawmode.cgi」を 2ch専用ブラウザソフト向けに提供しております。
>
> 「read.cgi」 は近々に予定している機能修正などで HTML が変更されます。
> 「rawmode.cgi」をお使い頂く事で「read.cgi」側の変更に影響されない作りにする事が可能となりますので
> 是非、下記をご参考下さい。
2ちゃんブラウザ作ってる奴でread.cgi経由で読み書きしているバカなんているか?
>>562 したらばやまちBBSはdat直読みが出来ないからread.cgi使ってるやつ多いよ。
確かrawmode.cgiが実装されたときにモナジラBBSに報告があったような。 何を使うかは作者の自由だけどさ。
>>562 いるから問題になってんじゃね?
>>563 dat 読むための rawmode.cgi じゃん。
rawmode.cgiはログ出力を偽装するものですが、 JBBSログは非公開のホスト情報を含むため、フィルタを行っております。
>>565 rawmode.cgi実装されたのわりと最近だから。
そこを言い争っても誰も得しないからやめとけ。
rawmode.cgiの出力は2chのdatと似てはいるが内容も文字コードも違う独自形式。 そのまま保存して直接出力する仕様にすると既に持っているJBBSのログと どのように整合性をとって繋げるかが問題になるし、D/Lの時に変換する仕様なら 結局はread.cgiを読むのと同じようなコンバータを作らねばならない。 既存のブラウザで乗り換えが進まなかったのはちゃんと道理があるんだよ。
こんなにこのスレ人いたのかw
俺も思ったw 2chしててプログラマだったら、このスレ見るんじゃないかな。 もっぱら使う専門な人なんで意見交換には参加できかねますが。
ネタないから普段は黙ってるだけで みんなチェック対象には入れてるんだろう。
575 :
568 :2006/11/24(金) 17:46:04
>>569 rawmode.cgiが使われていないことについて言ったんじゃなくて
「わりと最近」ってのが気になっただけなんだ。わかりづらくてスマソ。
rawmode.cgiの実装が進まない心境はよくわかるよ。read.cgiでも十分だし。
>>569 OSX向けの専ブラだと、半分くらいは2003/11以降だとおもうよ。
>>575 したらばでrawmodeの対応があったのは、わりと最近だった記憶が、実は自分もしているんだよなー。
(11月じゃなくて6月頃だった記憶がある。)
としとったから月日の感覚が麻痺しているだけなのかもしれないが(苦笑)。
盛り上がっている話題と関係なく今日気付かず苦労した点 ●ログイン時に送るデータをURLエンコードするとエラーになる
おつおつ
総合資料と個別資料ってどう住み分けしてるのん?
最近は大きな変更もないしねぇ。 rawmode使ってるけどいつ変えたか全く覚えてない・・・。
アーカイブ見たら確かに2003年11月に対応してたけど そのあとrawmode.cgi自体もちょこっと修正があったりしたな また変更があったのかと思ってびびった
wiki見てると他サイトの記事をコピペしたい衝動に駆られる
>●端末固有番号を送信しない携帯からの書込み禁止 >●IDに携帯識別符号を追加 >●IDの強制表示 >●携帯端末ID規制 鯖側のハナシだから関係なし 携帯用の作者さんは書き込み禁止について問い合わせがあるかもね。 >■新形式スレッド(新DAT)と旧形式スレッド(旧DAT)について 表示フォーマットが混在するスレもあるみたいだから、抽出機能とかつけてる人は注意、くらい? rawmode.cgiについて触れられていないようだから変化はないのだろう。
話の腰を折るかも知れんけど、思いついたから書かせて欲しい。 専用ブラウザの○○.exeを実行させて、 板・スレのアイコンをデスクトップとかにドラッグしたら、その板・スレへのショートカットを作成できて、 このショートカットを起動したら、○○.exeがコマンドライン引数付きで起動されて、その板・スレがアクティブになる。 って機能があったら便利じゃね? 例えば、ユーザーはクイック起動にでもジャンル別のフォルダ作って好きなスレのショートカットをどんどんブチ込む。 そうする事で、ユーザーは板に縛られる事も無く、好きなジャンルのスレを一括管理できる。 また、 C:\(…中略…)\Quick Launch\ガンダム\9.11Gundam'sオフ会.lnk C:\(…中略…)\Quick Launch\Off会\9.11Gundam'sオフ会.lnk C:\(…中略…)\Quick Launch\大阪府の地域ネタ\9.11Gundam'sオフ会.lnk C:\(…中略…)\Quick Launch\最近気になるスレ\9.11Gundam'sオフ会.lnk という具合に、同一のスレにアクセスするプロセスを複数作成できるので、 ユーザーが、「あのスレのショートカットどこのフォルダに入れたっけ?」と悩む事態も少なくなる。 もちろん、クイック起動以外の好きなランチャーやWindows標準Shellを利用するのもユーザーの自由。 ブラウザ製作者にも、煩雑な「ユーザーのお気に入りを管理する処理」をユーザーに丸投げできる利点がある。 ブラウザはコマンドライン引数に対応さえすれば良い。 但し、この機能を現実に実装する場合、ショートカットを作るのは容易な反面、削除をユーザーの手作業に任せるのは不親切。 「クイック起動フォルダ・ユーザー指定フォルダに含まれる、存在しないスレ・最近アクセスしてないスレのショートカットを探し出して全削除する」 みたいな機能もセットで実装したい。
公開してないがプログラム勉強用に作ってたブラウザでそういうの作ってた。 板一覧とかお気に入りも全部URLショートカットで好きなフォルダを2chブラウザに登録できる。 (IEのお気に入りみたいな感じで)
お前よく馬鹿って言われるだろ
お前は影で言われまくってるが一切それに気付けないタイプだな
それは普通だ
普通はたいして言われないし、ちょっとは気付くな
自分用の過去ログ取得スクリプトをofflaw.cgi中心に組んでみた。 エラーやら差分やらgzやら分岐が大変ね。 ## ログインしているならofflawで過去ログ取得 if ( $sid ) { $kakolog = &http(offlaw.cgiでゲットだぜ); ## 1行目と本体を分け、1行目を見て成否 ((my $stat), $kakolog) = split(/\n/, $kakolog, 2); if ( substr($stat, 0, 3) eq '+OK' ) { # OK } elsif ( $stat eq '-ERR そんな板orスレッドないです。' ){ # ないです。 } elsif ( ($stat eq "" and $kakolog eq "-ERR どこかであぼーんがあったみたいです。\n") or $stat eq '-ERR どこかであぼーんがあったみたいです。' ) { # ログ詰まりで全取得する # ここだけ1行目が空行のことがある } elsif ( (my @stat = split(/ /, $stat, 3))[1] eq '過去ログ倉庫で発見') { # html化済みでメッセージのURL $stat[2] からログをもらう # 既得があってgzでなければ差分取得する # 既得無し、gz、差分取得失敗で全取得する } else { # その他エラー } } else { ## ログインしていないのでkakoを見る } # 過去ログ $kakolog
597 :
デフォルトの名無しさん :2006/12/30(土) 00:01:55
598 :
デフォルトの名無しさん :2007/01/07(日) 12:33:40
2chブラウザってC/C++で作ってるのって少ないだね
OSX用はほとんどObjCかC++だよ。
よしじゃあ俺が
うわああああああ いつのまに規制解除されたんだコノヤローorz
Win32SDKだけで作ろうとしたけど挫折した。 コントロール作るのめんどい〜
死ぬ気か!
ATLかWTLを使おうよ。MFCはある意味SDK以上に死ぬ。
SDKで作り始める ↓ 関数ばっかりじゃんヽ(`Д´)ノ ↓ そうだファイルごとにまとめればいいんだ(・∀・) ↓ あれ?同じ処理ばっかり(´・ω・`) ↓ そうだクラス化しよう!(´Д`;) ↓ テンプレート使えばさらにスマートじゃん!(*゚∀゚)=3 ↓ どうみてもWTLです。 ああSDKで死んでみたいマゾな俺
WTLをもちっとSTLに近づけるのはおもしろそうダナ
ATL/WTLマンセーなやつ多いけどさ、フリーソフトだとDONUTくらいしかないんだよね ほんとに使ってんの? 今後でてくるならwxWidgetsあたりが意外と可能性あると思う
608 :
597 :2007/01/12(金) 10:05:56
OpenJaneをまるまるC++なんかにコンバートとか出来ないのかな? Delphiが使えないから、改造できない。
delphi学べ
C++わかるなら、今からDelphi勉強すれば今月末には余裕で読めてるだろ。 あとは自分で移植作業だ。
さてまた閉鎖騒ぎが起こっているわけだが
問題はひろゆきのやる気だな
しかし、ひろゆきも結構あこぎな生き方してるんだな。 普通のブロガーがあんなやり方を告白して開き直ってたら、 間違いなく2chで晒されて祭だろうなw
今回裁判を起こした人は一体何やって個人情報晒されたんだ?
閉鎖になると2chの情報がもったいないな・・・
>>617 げ・・・、噂には聞いていたが「35歳会社員」ってのはリアルで中国大使館オフの疑惑の人物だったのかよ・・・
2chブラウザを作るのは良い勉強になるんだけどな…
閉鎖になるわけないだろう。 ドメイン名が変更されてそれで終わり。
いや変更すら無いだろう。
変更すら無いと思うがもし変更されたらいちおうこのスレで扱う範疇だな。 1行修正するだけだと思うけど
板一覧を更新する人は作業が必要なんじゃない? いまはほとんど2ch.netってドメイン名で指定してるんだろうし。
釣られてる?
閉鎖になってもbbsmenuは更新する、っていうのをどこかで見たような気がする( ´・ω・`)
となると35歳会社員ってなにやって個人情報晒された人なんだろう? 全うに生きて晒されたのなら結構気の毒な話だと思うんだが(´・ω・`)・・・
「ひろゆきがやる気なくなって終了」はいつでもありうるんだよな・・・
>>630 いやだから中国大使館オフと今回の件は関係ないんだってばw
2chは閉鎖しないの情報が流れるとスレが止まったw きっと皆開発に勤しんでるに違いない!
仮にドメイン差し押さえられてもサーバは残るわけだし別ドメインやIP直でアクセスすればいいし今まで通りってわかってたよハハハハハハ
636 :
デフォルトの名無しさん :2007/01/19(金) 07:57:55
IP直じゃ書き込めないよ
637 :
デフォルトの名無しさん :2007/01/20(土) 22:08:46
>>637 Perlのソースをうpしても、「Perlのソースが読める」と、「●の実装を理解してる」の両方を満たす人しか回答できないよ。
送信してるヘッダを書いた方が判りやすいと思う。
それと、目的が「作る」のではなくて「ログを落とす」なら、壷インストールしてIEを自動操縦する方が簡単と思う。
>>637 ●持ちじゃないからテストできなくてスマンが、163行目はraw=.0じゃなくraw=0.0が正解じゃね?
640 :
637 :2007/01/21(日) 03:44:12
ブラウザの機能の一環として、30分おきに自動で約10板分の subject.txtを自動で読みに行くのは怒られる?
サーバーサイドだったら構わないだろうけど、個々のユーザーに自動取得させるのはどうかと思うよ。 使い道によっては嵐ツールに早代わりするから。 まあやるならしっかりとUAを名乗ることだね。
個人的には瞬間的にストレスかけるのは好きじゃないから、 もし同じような実装するとしたら3分おきに1つの板のsubject.txtを取りに行くようにするかな・・・
JBBS で倉庫行きになったスレって dat 取れないんだっけ?
646 :
644 :2007/01/27(土) 22:19:08
板が移転したときの判定について質問です。 板更新しないとブラウザ上では移転前のURLのsubject.txtを読みに行きます。 ケース1:初めて読む板でIf-SinceModifiedを付けずにリクエストしたとき スレッドが1つもないsubject.txtが存在していてHTTP StatusはOKが返ってきます。 このときはダイアログで板移転をうながせば良いかと思います。 ケース2:2回目以降読む板でIf-SinceModifiedをつけてリクエストしたとき Not Modifiedが返ってきます。 通常、Not Modifiedが返ってきたらローカルのsubject.txtを読んで表示してます。 本当は移転先のsubject.txtを読まなければいけません。 この場合、どうやって移転したと判定すれば良いでしょう? 前回の読み込みから10分以上経っていたらIf-SinceModifiedを付けないとか?
subject.txtは書き込み毎に更新されるので、IMSフラグを 付ける必要はないと思う。それで帯域が節約されるとしたら よっぽどの過疎板ってことだから。
649 :
デフォルトの名無しさん :2007/01/29(月) 18:01:42
>>647 なにか勘違いしてる
手元にあるsubject.txtが空でなければ、If-Modified-SinceつけてNot Modified が返ってきたら
サーバーのsubject.txtが空な訳はないだろ。
あと前にも書いたけど、If-Modified-Sinceじゃなくて If-None-Match 推奨。
650 :
647 :2007/01/29(月) 18:12:28
>>648 うーん確かに。だったら単純に更新連打抑制機能だけつければいいのかな?
他のブラウザはどうなってるんだろう。
>>649 うお。確かに勘違いでした。
今は未だケース1のスレッドが1件も無かったら板移転と判断のロジックが入ってないので、
ローカルに空subject.txtが保存されますね。
それでIf-Since-Modifiedしたら、それは・・・すみません。
If-None-Matchの件も上のレス見て納得しました。
>>650 前にちらっと読んだ kage のソースでは、1秒以内の同じ URL へのリクエストは
シカトするようになってた気がする。
>>652 その「関連キーワード」ってなんじゃろか?
654 :
委員長 ◆/DABoneCRY :2007/02/12(月) 19:45:26
>653 例えばこのスレッドをIEで開いて、最上部を見て下さい。 キーワード【 dat monazilla ブラウザ gzip Encoding ch 取得 】 といった物があります。 それをクリックして貰えれば「ああ、なるほど」と分かって貰えると思いますよ。
むを!上げてもた…… 見逃してやって下さい。
最後のl50、l100・・・、なしとかでキーワードの結果が違うのね どれが一番良いんだろ?
>>654 ああ、なるほど。そのスレに関連するキーワードが自動的に抽出されて最上部に
検索リンクがはられるということか。
>>657 推測だが、指定範囲のなかでキーワードを拾ってるんじゃなかろうか
660 :
デフォルトの名無しさん :2007/03/31(土) 17:05:32
同じhost上のdatファイルを何個か連続して欲しいときって Keep-Aliveのほうが効率いいと思うんだけど GET /tech/dat/1174585528.dat HTTP/1.1 User-Agent: Monazilla/1.00 Host: pc11.2ch.net Accept: */* Accept-Encoding: gzip, deflate Connection: Keep-Alive こんなリクエスト5連ちゃんくらいしてもレスポンスヘッダには 全部 Connection: close が入ってるんだよね。 そもそも HTTP/1.1 でリクエストしてるから "Connection: Keep-Alive" いらないだろ とか思って、なしでも試したけどどっちでも close されちゃう。 オレ的にはこれでも連ちゃんでdat取れるから、べつにいいんだけど 2chとしてはどうなの? あと、もうひとつ質問なんだけど、巡回みたいなことするときに、 「最低でもリクエストの間隔はこのくらいは開けろ」、とか 「連ちゃんでのリクエストは何回までにしろ」とか「この時間帯は避けろ」とか そういうのってないの? 常識の範囲ではわかってるつもりだけど、2ch的にはどうなんでしょ?
そのへんをあやふやにして運営してるのが2chです。 明確にすればそこスレスレで負荷をかけまくれるからね。 問題があればアク禁にされるってのが基本的な姿勢。 運営版でそれとなしに聞いてみればいいよ。 こんなサービスをしたいのですがどうですか〜って感じで。 FOXかひろゆきに気に入られたら鯖も無料で貸してもらえるよ。 あと法人名で問い合わせればjigみたいに個別に対応してもらえるかもしれない。
662 :
デフォルトの名無しさん :2007/03/31(土) 18:14:07
こっちは「keep-aliveでもcloseでもいいよ」って選択肢をサーバーに示している。 サーバーがcloseを望んでるんだから気にしなくていい。 サーバーの仕組み上、Keep Alive のほうが負荷が高くなるケースもあって、 2chでは Keep Alive を無効にしていることが多い。
663 :
660 :2007/03/31(土) 18:51:45
レスさんくす。 そんなもんなんだ。 けど、それってぎゃくに難しいよなぁー・・・
(´-`).。oO(運用情報板を読んでいないんだろうなぁ。。。)
>>660 のをハイパーターミナルで試してみた
プロパティでTCP/IP ポート80 アドレスはnslookupでとってきて。
さらに設定タブ>ASCII設定で
ν行末に改行文字
νローカルエコー
ν受信データに改行文字をつける
ν右端で折り返す
>>660 のリクエストの行末に改行2つ(これがリクエスト・レスポンスのヘッダーとボディの分け目のマーク)つけてテキスト(req.txt)に保存して、
そして、もう一つテキストを作って(cap.txt)、転送>テキストのキャプチャ(cap.txt)
そして、転送>テキストファイルの送信(req.txt)でリクエスト送るとレスポンス返ってきた。
ここまではいいんだが、
でcap.txtをcap.htmlに変えて色々文字コード変えてもボディが文字化けしたままなんだけど、これはハイパーターミナルのエンコードが既にシフトJISだからかなあ?
自己解決しました レスポンス Content-Encoding: gzip でした
最近2chブラウザ(とても使えるレベルじゃないのでみたいなもの)作ってるんですが、 be付きで書き込む場合って●を使って書き込むDOLIB 1.00の仕様と同じなんですか?
>>667 違うよ。全然違うよ。
beはcookieとしてメアドと認証コードを送る。
それぞれDMDMとMDMDというのがキーになっている。
そこ以外は通常時と同じようにPOST。
のはず。
669 :
667 :2007/04/10(火) 12:16:06
やっぱり違いますか。ということは通常書き込むときは、 "Cookie: NAME=" + 名前 + "; MAIL=" + メール + "; " + 返ってきたSet-Cookie:のPONとexpiresとpath=/ + "; hana=mogera" で書き込めてますけど、 "Cookie: NAME=" + 名前 + "; MAIL=" + メール + "; DMDM=" + be登録アドレス + "; MDMD=" + be認証コード + 返ってきたSet-Cookie:のPONとexpiresとpath=/ + "; hana=mogera" で大丈夫ですか? 上記の名前、メールはURLエンコードしてますが、be書き込み時のbe登録アドレスとbe認証コードもURLエンコード必須ですか?
670 :
667 :2007/04/10(火) 15:52:19
URLエンコードなしでBe書き込みできました。どうもです。
マルチですが、情報を。 書き込み不可となっているブラウザがいくつか発生しているそうです。 とりあえず、私が把握した情報だけ。 想像も入っているのですが、鯖側でクッキーの処理が変わったのか 複数行のクッキーだと受け取って貰えないようです。 //この処理だとダメ IdhEdit->Request->CustomHeaders->Clear(); IdhEdit->Request->CustomHeaders->Add("Cookie:NAME="+CmbName->Text); IdhEdit->Request->CustomHeaders->Add("Cookie:MAIL="+CmbMail->Text); IdhEdit->Request->CustomHeaders->Add("Cookie:"+gCookie); //この処理だとOK IdhEdit->Request->CustomHeaders->Clear(); AnsiString CookieCode = "Cookie: NAME=" + CmbName->Text +"; MAIL=" + CmbMail->Text + "; " +gCookie; IdhEdit->Request->CustomHeaders->Add(CookieCode); 実際には鯖側で処理を変えたのか、それとも鯖とIndyの相性(\nと\r\nとか)なのか はたまた、Windowsアップデートがあったそうなので、それが影響しているのか不明ですが とりあえず、A Boneでは、上記の変更で修正出来ましたので、ご連絡しておきます。
672 :
stream ◆PNstream2s :2007/04/11(水) 16:40:28
ちなみに、複数行のCookieは確か間違いなんで今回の件にかかわらず直したほうがいいです
ニコニコが人気らしいが、あんな風にプレイヤーと専ブラが融合した物を 誰か作ってみんかね。 キャプチャデバイスから映像を取り込みつつ、実況板(指定したスレ)から ログを取り込んで重ねて表示とか。
そのアイデアは楽しそうだね。 キャプチャのメーカによってプログラムを変えないと いけないだろうから複数の人に向けては難しいかもね。 ワンセグとかだと割りと簡単に取れたりするのかな?
ビデオデバイスを扱う汎用なインターフェースがあるっぽい?
古いものならVFW、最近のならWDM
テレビを表示してるウィンドウに、半透明化した専ブラのウィンドウを重ねればいいんじゃね? と思ったが、テレビが見難い… 文字だけ表示し、ウィンドウの枠などが透明な専ブラがあればいいのかな
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/655- > 655 :動け動けウゴウゴ2ちゃんねる :2007/05/07(月) 17:28:03 ID:KXXfawU50
> スレがdat落ちしてた時read.cgiなら
>>1 は読めるのに
> ●ログインしてない専用ブラウザだとスレタイすら分からないのはひどい
> 専ブラにもpastdat.soを開放するべきだ
>
> 656 :stream ◆PNstream2s :2007/05/07(月) 18:58:19 ID:3mprCz2C0
>
http://qb5.2ch.net/test/read.cgi/operate/1153650861/768-769 > read.htmlが入ってるところなら、datファイルにUserAgentがMonazilla以外でアクセスすれば
> dat落ちしているならリターンコードが203で、内容がそれなりのものが返って来る。
>
> 657 : 株価【1540】 △△ ◆cZfSunOs.U :2007/05/07(月) 19:44:27 ID:T2091+Se0
>
>>655-656 ただ,専ブラが Monazilla 以外の User-Agent をよこしてくるようになると
> 後々面倒なことになるかも知れない(専ブラとそれ以外の判別処理が煩雑になるなど)ので,
> 専ブラの各作者さんで話し合って,pastdat.so / anydat.so 対応であることを示す統一した目印
> (例えば User-Agent を Monazilla/1.00 (SomeBrowser/1.0; pastdat) のようにするとか)
> を決めてもらえるといいような気もします.
> そうしてもらえれば,pastdat.so / anydat.so に対応する処理を入れます.
>
> # 今は,pastdat.so が入ってるのは雪だるまだけ,anydat.so が入っているのは
> # read.html が入っている鯖だけなんですが,これやると anydat.so 全鯖配布になるのかな.
その通り pastdat を追加で良いんでね? Monazillaのヴァージョン番号とかだと、更なる機能追加とかあったときに、 対応・未対応の区別が面倒だし。 BとCの機能は対応してるがAには未対応、みたいな。
681 :
n|a :2007/05/08(火) 22:10:22
>>679 実際にUAの値を使うのはサーバ側なので、
パースの容易さや将来の拡張性等の点でサーバ側に都合の良い仕様を
提案してもらった方がいいのではないでしょうか。
専ブラ側でUAに文字列を追加するのはそれほど問題にならないと思いますし。
682 :
● :2007/05/09(水) 00:11:19
話をぶったぎって悪いが ようやく自作ブラウザでログインして書き込みできるようになったんで記念カキコ
>>679 独自のHTTPヘッダで対応するのは無理?
クッキーなしの状態からクッキーもらってbbs.cgiにポスト するまでの処理がわかりません。誰かおせーて。 あとスレのたてかた。
どこまで調べた・試したかくらいは書こうぜボーヤ
>>685 IE等の普通のWebブラウザと同じだよ。
689 :
○ :2007/05/15(火) 13:52:52
買えよ
690 :
● :2007/05/15(火) 13:53:43
ってログインしとらんかった・・・
●飼うほど使わないしぃ・・・
1だけ読めてもねぇ
>>685 俺はだいたいこんなかんじ。
1. リクエストヘッダーのクッキーに、ローカルに保存しておいたクッキーの値を読み込む。クッキーが無い場合は空。
2. bbs.cgiにポスト
3. レスポンスを読んで、「書きこみました。」の文字があれば終了。
4. レスポンスを読んで、「書きこみ確認」の文字があれば、レスポンスヘッダーのクッキーをローカルに保存する。1へ戻る。(※無限ループにならないように戻るのは1回だけ)
5. レスポンスを読んで、3,4以外だったらエラーなので終了。
スレ立ての場合は、ポストする内容から key=datキー を削って代わりに subject=スレ名 を付け加える。
それと submit=書き込む を submit=新規スレッド作成 に変えるだけで後はレス書きこみと同じ。
>>693 なるほど、参考になりました。ありがとう。
2chブラウザで使う主機能(datの取得とか書き込みとか)をまとめたライブラリを 誰も作らないのはなんでなんだぜ?
調べりゃわかるのに何で作るんだぜ? 調べてもわからなければここで聞けばいいんじゃね?
言語もOSもバラバラだから作ろうにも・・・
699 :
デフォルトの名無しさん :2007/05/17(木) 17:27:08
OSXならThousand2chとか
>>695 じゃあとりあえずCのソケット関数で作ってくれ
#include <sys/socket.h>
か
#include <winsock.h>
で
701 :
デフォルトの名無しさん :2007/05/17(木) 19:27:19
CかC++でHTTPを扱うライブラリで何かお勧めない? OSはWindowsかun*xで
WinHttp
>>695 JavaとC#で使えるライブラリお願いします><
Jakarta HttpClient
そこで誰かがライブラリを修正すればみんなハッピー! あー幻想幻想
俺じゃない誰かがOpenLib2chを作成するんだ!
必要なのはライブラリではなく、 明確な仕様とその変更の通知
まちBBSに対応させたいんですが、 2chと違ってread.cgi経由で読み出すしかないんですかね?
うん まちはread.plだけどね
ありゃread.cgiで組んじゃった でもちゃんと動作してるみたいだし良いか それにしてもまちBBSのread.cgiが吐き出すhtmlって汚いなぁ
714 :
デフォルトの名無しさん :2007/05/22(火) 02:42:45
ギコナビはそれでいった。
へぇ 起動オプションでURL渡すとかそんな使い方あったのか
統一したって話は聞かないから、ブラウザごとにバラバラじゃないかね。
717 :
713 :2007/05/22(火) 20:51:58
情報アリ ツール作ってて、取得したURLから2chブラウザで直接開けると便利だなぁと 思って聞いたんだが開けないの使ってる人はあきらめる!って方向で行くわ だいぶ形になってきて後はデバグだorz
普通に考えて、標準のURL以外の形式に限る理由なんかないだろう。
719 :
デフォルトの名無しさん :2007/05/22(火) 22:00:59
2ch専用のスキームがほしいかな 2ch://pc11.2ch.net/test/read.cgi/tech/1057329161/ これで普通のブラウザと区別できる
2ch.net/test/read.cgi/ の部分はチェックすればいいだけじゃね?
実装しちゃるって奇特な専ブラ作者さんはおられんかの 【要望】 スレッド上に貼られた、MD5、SHA-1等のハッシュ値に該当する画像ファイルが 特定の指定したフォルダにあった場合にサムネイル表示する機能 ぶっちゃけ壊滅しつつある画像うpろだの代替機能を P2Pソフト+専ブラで実現できんものかと
著作権法違反幇助の罪で捕まっちゃわない?
専ブラ自体はローカルのファイル検索して表示するだけだし問題無いと思う。 で、P2Pソフトの方はnyとかだとタイムリーなネタは無理だね
特定のフォルダにある画像ファイルのハッシュをあらかじめキャッシュしておく必要はあるかな。 あと、ハッシュらしき文字列を判定する機能も必要。
画像ファイルの入手も問題だな。
スレ上に張られたハッシュ値をいちいちコポペするのかい
728 :
デフォルトの名無しさん :2007/06/12(火) 14:04:27
エンジン内臓を誰か作ってください。 エンジン内臓を作ってよ ギコナビからIEやjaneから
日本語でおk
臓物を作るのか
内臓はグロイからやだ。
732 :
デフォルトの名無しさん :2007/06/26(火) 18:15:46
live2chみたいな実況中継型のブラウザを作ってみたいんだけど連続してスレをリロードするとき 最低でも何秒以上あけないと荒らしと認定されてアク禁食らうようなことになったりしない?
>>732 個人で管理なので大変なのでしょう…
termkeep.される事を理解できれば その様な状態には為らないと思います。
>>733 > termkeep.される事を理解できれば
なるほど、その間隔は2ちゃんの鯖から制御されるのか
行く先々でこのコテ見かけるわ最近
把握。 ひろゆき( ´Д` )
よくある次スレ検索機能みたいなのってどういう仕組みになってんの?
>>740 基本的には、スレタイの先頭数文字の一致。あとは【】をとばすとか、いろいろ考えられると思う。
結局自分で探すのが一番
自分で探すときの考え方をそのままプログラムに反映させるだけだろ ・・・と口で言うほど簡単ではないけど、基本的にはそうだと思う・・・
ということは高精度なOCRが必要になるってことでしあ
>>740 Janeはコサイン係数で文字列の類似度から次スレを見つけてるみたい。
twintailは文字列を単語毎に分解してるだけだから簡単な実装で大丈夫だと思うよ。
748 :
746 :2007/07/25(水) 15:02:29
あ、ごめん、JavaScript モードにしてるからだったみたい。 CGI モードだと 6 だけだった。
一ヶ月書込みがないな
役割を終えたということで・・・・
2chの仕様変更でもない限り盛り上がらないだろうな ところで2ch以外の掲示板の話題はスレ違い? 俺はまちBBSのスレッド取得について詳しく書いてあるサイトがあれば教えて欲しいんだが。 あぼーんがあるとsubject.txtに書かれているレス数と最終レスの番号がずれるのでどうやって差分取得をすればいいのかわからない。
あぼーんなら差分取得はしない
まちBBSって .cgi ファイルになってて取得できなくない? どうやってあぼーん検出するの?
>>754 >あぼーんがあるとsubject.txtに書かれているレス数と最終レスの番号がずれるので
それってスレを取得する度にsubject.txtも更新する必要があるような・・・
757 :
デフォルトの名無しさん :2007/09/05(水) 23:40:09
誘導されました。 2chブラウザ作っているのですが、qb5.2ch.netに書き込み確認のcookieタグを 取得しようとしても正しく取得できません。 調べるとhttpのヘッダが他のサーバーと違います。 これはどうしてですか? 書き込みをしようとした時にcokkieが書かれたヘッダです。 --------------- news22.2ch.net --------------- HTTP/1.1 200 OK Date: Tue, 04 Sep 2007 14:49:57 GMT Server: Apache/2.0.55 Set-Cookie: PON=***********; expires=Friday, 01-Jan-2010 00:00:00 GMT; path=/ Set-Cookie: HAP=******; expires=Friday, 01-Jan-2010 00:00:00 GMT; path=/ Vary: Accept-Encoding Content-Length: 1911 Connection: close Content-Type: text/html; charset=shift_jis --------------- qb5.2ch.net --------------- HTTP/1.1 200 OK Date: Tue, 04 Sep 2007 14:37:59 GMT Server: Apache/2.0.52 (Unix) PHP/4.3.10 mod_ssl/2.0.52 OpenSSL/0.9.7c-p1 Set-Cookie: PON=***********; expires=Friday, 01-Jan-2010 00:00:00 GMT; path=/ Set-Cookie: HAP=******; expires=Friday, 01-Jan-2010 00:00:00 GMT; path=/ Vary: Accept-Encoding Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=shift_jis
HTTP/1.1を名乗っているのにChunked-Transter-Encodingを理解しない者は 腹を切って死ぬべきだ。詳しくはRFC2616で熟知すべし。
HTTPヘッダが違うのは鯖がそういう環境だからだろう。 ていうかヘッダ見る限りクッキー取得できてるじゃねぇか。
まだじゃね?
>>761 情報サンクス。
dat直読みか、rawmodeを載せてくれるとうれしいなあ。
差分取得が楽になる。
monazilla.org 更新再開されてたんだな。 phpのWarningがでまくってるけど。
他力本願だけどなw
Warning: main(module/asm4cmt/): failed to open stream: No such file or directory in /home/monazill/public_html/index.php on line 116 Warning: main(): Failed opening 'module/asm4cmt/' for inclusion (include_path='.:/usr/local/lib/php') in /home/monazill/public_html/index.php on line 116 Warning: Cannot modify header information - headers already sent by (output started at /home/monazill/public_html/index.php:116) in /home/monazill/public_html/index.php on line 1542 ググッてもmonazilla.orgのキャッシュしか見つからないぜw
BBS_THREAD_TATESUGI=64 おそらく連続してスレ建てするのを規制する行だと思うんだけど 64とされていた場合、次にスレ建てできるようになるまでどのくらいの 時間がかかるんだっけ?
過疎スレで64個って永杉だろorz・・・
過疎はきついなw
772 :
● :2007/09/30(日) 13:04:33
買え
買わされ続けて解約できないと聞いたから嫌
774 :
○ :2007/09/30(日) 16:45:20
解約手続きしたこと無いからわからんが 2chをやり続ける限り●も買い続けるぜ。
775 :
● :2007/09/30(日) 16:45:48
ログインしてなかた
メール送ったら解約できたぜ。 送ったメールに対する返信・確認や連絡は一切なくてうさんくさいこと この上なかったが、引き落としされなくなってた。 二度と買わねぇ
指定した2ちゃんの特定の板にある全てのスレを読み込んで 特定の文字、ID、名前、E-mail欄で検索をかけるちょっとしたツール を自作しよかと思ってるんだけど似たようなツールって既に現存したりする?
転送量・・・一つの板だけならそんなでもないかな。わかんないけど><
個人的にやるなら大丈夫だけど、ツールを配布するなら狐が激怒するから注意。 了承取っとかないとちょっとしたクロールでもバンされるから。
780 :
デフォルトの名無しさん :2007/10/31(水) 11:22:36
そんなのUserAgentを適切に設定すればOK
クロールはip単位でバンしてるから。 ちょっと前まではgooglebotさえバンしてたぐらいだから。 みみずんやら閉鎖したにくちゃんねるやら、2nnとかは ipの範囲を申告して了承を受けて取得してる。
782 :
デフォルトの名無しさん :2007/10/31(水) 11:59:04
あいつら最近そういうの取り締まるのやる気ないから
783 :
777 :2007/10/31(水) 12:17:20
了解ッス。 キワモノの扱いってことはそういうツールは公にはなさそうだね。 というわけで自作する道を選びます(・ω・)ノシ 一つの板にある全てのスレを読み込んでいくわけになるんだけど 何秒以上間を置いてから読み込んだ方がいいとかわかる? そこらへんも実際にやってみないことには何ともいえないのかな?
運営側は何秒までならいいですよ〜なんて絶対に言わない。 言えばそこギリギリで負荷を掛ける奴がいるから。 定期的にクロールすれば負荷のグラフが突出、 するとログを調べられて規制の対象になる。 その辺りの調整はrootがやってるから、該当スレと負荷グラフを見てこっそりやるしかないわ。
786 :
デフォルトの名無しさん :2007/10/31(水) 13:07:05
逆に配布してみんなやるようにすればいい そうすれば自分だけ目を付けられることはなくなる
788 :
デフォルトの名無しさん :2007/10/31(水) 13:28:16
2chは最近はそれほど負荷に悩んでるって訳でもない。 サーバーの能力の伸びは今では利用者数の伸びをはるかに上回っているし。 それにひろゆきの年収を考えてみろ、いざとなればサーバーなんていくらでも増強するだろう。
設備をケチれば狐の会社が儲かる不思議。 rootは知的好奇心から鯖運営を無償でしてる(ことになってる)。 実際ひろゆきは2chのサーバー代は全く払ってない。(BE鯖、ひろゆき直轄を除く) ●のプール金から払ってることにしてるだけ。
たしかそれがひろゆがたとえ逮捕されても死んでも2ちゃんはすぐには無くならない根拠となってるよな
逮捕されたり死んだら、実際にサーバーがあるアメリカの会社のJimが ひろゆきの代わりに管理人になると言われてる。 ちなみに彼はbbspinkの管理人ね。 内紛があって狐とはあまり仲がよくないけど、今でも一応ビジネスパートナー。
>>788 この場合は負荷ではなく転送量の問題の方が大きいと思うが・・・
793 :
デフォルトの名無しさん :2007/11/01(木) 09:29:11
よーしパパ、自作専ブラのgzip転送サポートしないで作っちゃうぞー
今出回ってる奴らはgzipサポートしてんのかね
そういえば鯖によってはgzip圧縮しないと転送してくれないものもあるんだっけ? 主要な2ちゃんブラウザってどれもgzip圧縮でやりとりしてるの?
offlaw.cgi経由はgzipでないと無理じゃなかったっけ
>>795 gzip受けられないと5年前ぐらいの過去ログがとれなくなるから
さすがにしてるんじゃね?
2ちゃんのログをC#を使って取得しているんだけどその際参考にさせてもらってる
サイトが↓
http://dobon.net/vb/dotnet/internet/webrequest.html WebRequestクラスを使ってログを取得しているんだけど上記のページで紹介されてる
サンプルプログラムってgzipデータをやりとりなんてややこしいことやってないよね?
gzip圧縮しなくてもログ取得できてるから気にしてなかったんだが、もしgzip圧縮された
ログを取得して読めるようにするには上記のサンプルプログラムをどう改造したらいいの?
>>799 2.0以降なら
HttpWebRequest.AutomaticDecompression
>>800-801 ありがとう(・ω・)ノシ
でも.NET 2.0以降じゃないと対応してないのか・・・
あいにく1.1(VS2003)で開発しているんだよね(´・ω・`)
>>802 今時1.1はちとアレだ、Express Editionでも落として来い
と言いたいところだが
お題: 完成した専ブラをみんなに使ってもらうには
Microsoftに売り込んでWindowsにバンドルしてもらう
>>804 monazillaに登録されると一気に人が押し寄せてくるよ
いらないレスを削除してスレをまとめる機能を専ブラに付けようと思ってるんだが。 一体どう計算させればできるのだろうか? 独自ファイルを一時的に作り、datに毎行移動フラグを付加してみたら良いのか。 読み込んだdat ↓ 一時保存ファイル(移動フラグ、フォントサイズ変更フラグ、色変更フラグなど付加) ↓ HTML変換
いらないレスは透明あぼん扱いにして飛ばしちゃえば?
>>808 それどうやれば使えるの……ってググってくるよ。
あぼ〜んのやり方知らないとか、やっぱりdatの扱い方を熟知しないと辛いか……
dat->html変換にはかけてるんでしょ。その変換がレス単位なら、 外部条件によって実行するか、<--あぼん-->とだけに するかだけの話じゃないの?
どんなスキルで作ろうとしてるのか不安になるな・・・
工エエェェ(´д`)ェェエエ工工
>>809 こんな感じかな
dat読み込み
↓
本文とか名前欄でいらない物が入ってるかチェックしていらないものはあぼん書き換え
ここでサイズ変更とか色変更もここでやればいいと思う
↓
一時ファイルに書き出し?
↓
html変換
>>811 javaで作る予定。
スキルは……2chの仕様書は何となく理解できたくらい。
>>812 そんな感じ。
そう複雑になるものではないはずなんだけど、もしかしたら無駄な行程を入れてしまっているのかも知れない……
ところで、スレまとめソフトを公開してはいけない規約とかあったか? 参考にしようとしたらどこ探しても見あたらないんだ。 2chまとめブログが最近増えてきてるからどっか大手が作ってるんだろうなと思ってたんだが、ないんだな。
>>816 2ちゃん消滅騒動以来負荷をかけない、転送量を抑えるというのが暗黙の了解と思っている。
取得したdatに関してはどう使おうが問題はないはず
どなたかdatをHTMLに変換する方法を優しく教えてくれませんか。 形式を見てもどうすれば本文を<b></b>で囲ったり名前の前に番号を振ったりできるのか分かりません……
ただの文字列操作だ。 Jane等のオープンソースのコードを読んでみろ。
ありがとうございます。
>>818 おいおい
datを1行読んで<>で分解して本文の前後に"<b>"と"</b>"を結合するだけだろ
>>818 ぶっちゃけお前に2ちゃんブラウザは無理。
見た目より難易度高いよ、作るの。
作って公開して自らスレを立ててもいいのだろうか Duawinなんかは1=開発者のようだが
宣伝しなきゃデバッグしてくれるユーザーは現れないよ。
つか、良いとか悪いって基準はなんなんだよw
逆襲スレ落ちてしまったのか。
逆襲からここにたどり着くのが大変だった
830 :
デフォルトの名無しさん :2008/01/13(日) 02:59:27
age
PSPから書き込み
もう一度
833 :
デフォルトの名無しさん :2008/01/24(木) 15:43:58
しつこく 改行 テスト
834 :
名なし :2008/01/24(木) 16:02:08
あ か さ
たなは
おぉ、乙!
てすと
839 :
デフォルトの名無しさん :2008/02/10(日) 18:02:13
>>840 monazilla.orgを盛り上げて、2chブラウザの世界も盛り上げるためでしょう。
>>839 宣伝で、一言ずつソフトウェア板の2chブラウザのスレに声をかけてみたら?
>>839 ここは技術的話題がメインだから
>>841 が言うようにソフトウェア板の
例えば乱立スレとかに・・・んーそれはそれで問題が起きそうだな・・・
………
今まで動いていた●での過去ログ読み込みができなくなりました・・・ Firefoxでofflaw.cgiへのsid付きURLベタウチ&User-Agent:Monazilla/1.00 kage(1.00)だと きちんと読めました。 これと同じURLで自分のプログラムから送信しても -ERR もうつかえません となります。 User-Agentの指定、セッションのURLエンコード、他に何かミスりそうなことありますかね。
>>844 Firefoxでクッキー削除してみたらどうなるかな
FirefoxアドオンのLive HTTP headersでリクエストとレスポンスを確認してみたら何かわかるかも
何か問題でも?>DATのUTF8化
文字コードの変更だからめちゃくちゃ面倒だろ。 BE板のみがEUCになったときでも対策大変だったのに。
EUCはSjisに変換すれば良いだけだったけど、 UTF8はSjisに含まない文字もあるので大変 内部処理も表示も変えないと
全部UTF-8に変換すればいいじゃない
851 :
デフォルトの名無しさん :2008/04/13(日) 22:58:51
Windows9xのころからあるレガシーな開発環境だと Unicodeまともに対応してないとかありえるけど Windows2000が登場して8年だし、もう仕方ないよな
仕様変更するなら早い方がいい 後になればなるほど対応が大変になる
datサイズがどうなるとか、生きてるdatも変換してしまうのかとか、UTF8とSJISのdatが混在してしまうのかとか 過去ログはどうするのかとか、UTF8はUTF8専用のdatを用意するのかとか、古い専ブラ(開発が停止している専ブラ)を見捨ててしまうのかとか、 いろいろ問題があるようだからすぐにはやらないとは思うけどな
だがいつかはやらなきゃいけないことでもある
なんでやらなきゃいけないの?
遅くなる前にというけど、もう十分手遅れだと思われ・・・ やるとしたら既存のは捨て、新たなシステムで、ということになるだろう。 文字コードよりも、もっと仕様固める方がいいな。 エラーとかわけわかめ。
結局
>>846 のリンク先の話題は、専ブラ的にはまったく関係ない方向性で収束したっぽいね。
ひ(r 「dat を UTF-8 にしたい。read.js が使えるから。AAがまずい?」
stream 「UTF-8 にしてもAAは問題なし」
SunOs 「UTF-8 にしないと read.js が使えないって?IE6 では anydat.so でやってる」
ひ(r 「anydat.so って重くない?」
SunOs 「IE6 は捨てよう、JavaScript 周りが変だし」
stream 「Shift_JIS は腐っていやがる」
SunOS 「早すぎたんだ」
ひ(r 「anydat.so がなければ人大杉が無くなるんじゃ?」
SunOs 「別に anydat.so は重くない。read.js 全面移行できないのは IE6 が腐ってるから」
SunOs 「おいちゃんが『人大杉で read.html に振らないようにして欲しい』と言ってたし」
ひ(r 「ほいだら、人大杉のときは、read.htmlをデフォルトで動くようにしちゃってくださいー。」
#
http://qb5.2ch.net/test/read.cgi/operate/1207973589/93 SunOs 「した」
… と思ったらまだ何かやるつもりか。
stream 「多言語扱えたほうが便利でしょ」
未承諾 「perl 処理方面は軽くなる?」
:
:
ひ(r 「文字コードを変えるとしたら、サーバ移転ごととかそんな感じすかね。」
#
http://qb5.2ch.net/test/read.cgi/operate/1207973589/167 む 「UTF-8 にするなら、専ブラ的にも bbs.cgi 的にも SETTING.TXT でやるのがいいのでは?」
む 「2chの内部処理的な意味で」
む 「PC 方面は UTF-8 にしてもわりかし大丈夫そう。携帯方面はどうだろう?」
strem 「Shift_JIS の板と UTF-8 の板が混在するってこと?」
む 「混在するかどうかはともかく、bbs.cgi 的には両対応にしたい」
:
:
時期を指定して、これより以降に保存されるdatはすべてUTF-8で保存されます と決めちまったらどうだ? これなら各ブラウザも余裕を持って対応改修できるだろ。
まあ、猶予期間は必要だわな
860 :
デフォルトの名無しさん :2008/05/23(金) 06:26:47
あげ
さげ
サーバー型のブラウザを作ろうと思ってます 取得したDATをどの程度使っていいのか判断がつきません DATをDBに格納して使うって著作権に触れないんですかね?
>>862 個人でサーバーにスクリプトを設置する方式だったら問題ないと思うよ。
公開型だったらdat落ちと同時にDBから削除しなければ、怖い人から訴えられるかもね。
ノラp2やorz、讃岐などを参考にね。公式p2やべっかんこは参考にはできない。
864 :
862 :2008/05/28(水) 11:32:27
>>863 公開型を考えています
・常識的な負荷/転送量にする(差分取得・gzip)
・dat落ちは即削除
この辺を守れば問題無いと考えてよさそうですね
ありがとうございました
dat消さなくても問題ないだろ 過去ログ置き場とかいっぱいあるし
867 :
デフォルトの名無しさん :2008/05/28(水) 16:32:30
dat落ちしてないスレッドとdat落ちしたスレッドで扱いが違うなんてことはない。 どっちも著作権的には同じ。
著作権ではなくて●の問題じゃないだろうか dat落ちは運営の資金源にもなるわけで
>>864 人気が出たら常識的な負荷ではなくなるのが難しいところですが。
公式コンテンツになるか許可が下りれば問題はなくなりますがね。
>>867 当面の敵は著作権じゃない。
狐、root、ひろゆきだ。
とりあえず好きなように作ってみて おこられたらまた考えればいいんじゃね?
871 :
デフォルトの名無しさん :2008/05/28(水) 18:36:31
dat 落ちした物を公開するのに金が絡まなければ、とりあえず問題ないんじゃない? むしろ、公開型の問題は「書き込み機能」があるか否かじゃないかな。 いわゆる非公式の公開 p2 は軒並み N.G. 喰らってるべ? 書き込み機能を持たせたいなら、そこはひ(r とかおいちゃんとかに相談じゃないかな?
http://ss.chbox.jp/ とりあえずここ見てる限りバーボンが問題だな。
バーボンの除外は運営と利害が一致しないと回避は無理。
書き込み機能はひろゆきの管轄だな。
そして狐による規制の嫌がらせを受けるw(公式p2の例)
>公開型の問題は「書き込み機能」 これは何故だろう 荒らされやすいとか、それを通り越してアタックされやすいとかそんな理由なのでしょうか
>>874 鯖管がしっかり管理してないと身元を隠して書き込みできるようになるから
>>874 大きく分けて問題点は二つかな。
・せっかく2ch側でプロクシとか荒らし規制とかしているのに、そこから書き込み
できるようでは意味が無い(まぁ、現状でも公式 p2 で似たようなケースはあるけど)
→ 現状、非公式な書き込み機能付き中間鯖は、のきなみ N.G.
・お上が「ログを出しなさい」と言ってきた場合、2ch -> 公開鯖管とお鉢がまわって
くるけど、それへの事前の処理(ちゃんとログの管理をしているか)、対応。
→ まぁ、ログさえちゃんとしていればいいだろうけど(それでも膨大な量になるかと)
特に一番目の問題は、なんとか許可を取り付けても、少なくとも常に2chと同等
レベルの規制機構・処理が必要になるから、できたとしても大変だと思うぞ。
ノラp2は公開プロキシと同じだからね。 書き込み責任者を割り出せなければ管理人の責任になるとの理屈かな。 公式p2はひろゆきの関連企業の業務になったから問題はないんだろう。
なるほど 書き込みは公式に飛ばすのが無難かもね
公式p2はユーザ単位でのピンポイント制御できるからな
てs
881 :
デフォルトの名無しさん :2008/07/18(金) 19:02:20
勉強の為に専ブラ作ってるんですけど、dat⇒htmlって必要ですか? てか表示部分はwebbrowser使うのが基本? richtextじゃダメ…ですよね…
richtextでもかまわないだろ
まて dat->htmlが必要かどうかをこのスレで聞くことにどのくらい意義があるんだ?
出力なんてどうにでもなるだろうjk
好きなようにつくればいいのです。
あ、レスついてた。 datからそのまま表示させるより、 html形式にしてから表示させるほうがいろいろ便利なのかなーと…。 まぁそれくらいもわからないほど知識ないって事です。すんません
しばらく考えてwebbrowserで作ってたけど、レスポップアップで挫折です。 本当にありがとうございました。 誰か障りだけでもヒントください
高度すぎて&デルファイで意味不明だったオワタ。 とりあえず別の勉強します。thx
変更ありがとうございました。
保守ですまん
プログラマー諸氏がんがれ!
イヤなんか今さら開発しても出尽くしてるし・・・みたいな・・・
rep2がもっとクライアントサイドによらんかなってのはある スレ一覧のソートぐらいならJavascriptでできるんじゃないか、とか
さすが kage だ何ともないぜ… Cookies.txt の hana=mogera 系エントリが無限に増えそうで 怖いけど
DATの差分取得を試みているんですが、
If-Modified-Since: リモートDATの最終更新時刻(値は応答ヘッダのLast-Modifiedを調べる)
Range: bytes=ローカルDATのファイルサイズ-
の2つを要求ヘッダに入れることは必須ですか?
それともRangeだけでも差分取得は出来ますか?
膨大な数のdatファイルごとにIf-Modified-Since値を記憶しておくのは管理が面倒です。
ローカルのDATファイルのサイズは簡単に調べられますのでRangeだけで差分取得
ができるのならプログラムはぐっと簡単になります。
http://age.s22.xrea.com/talk2ch/
あぼーんで減ったバイトと新たな書き込みで増えたバイトが たまたま同じだった場合、rangeだけでどうする?
ローカルのdatファイルの最終更新日時を使うのじゃだめなの?
902 :
899 :2008/09/30(火) 01:21:43
>>900 事前にsubject.txtをDLして各スレのレス数を解析しておこうと思っています。
これなら新たな書き込みがされればレス数が増えてるので、たまたまバイト数
が同じだった場合でもあぼーんを検知でき(実際何もDLされてこないわけですから)
ると思います。
>>901 ローカル側のファイル更新時刻をif-Modified-Since型に変換できるなら
それもありのような気がします。
903 :
899 :2008/09/30(火) 01:28:28
ちょこちょこっとプログラムを組んでみたんですが、 if-Modified-Since を指定しないと差分取得は出来ないようですね。 いくら Range でローカル側のファイルサイズを申告しても 1からdatを再取得してしまうようです。 差分取得するならローカル側のファイルの更新時刻をどうにかして 調べて if-Modified-Since に収納してやらないとならないようです(´・ω・`)
Last-Modifiedだけでなく、ETagも見た方がいい
>>424 とか参照
905 :
899 :2008/09/30(火) 02:33:59
>>904 たとえばC#でLast-Modifiedを保存するには
HttpWebRequest.LastModified
でリモートファイルの更新時刻を取得することができ、
またデータのフェチの際は
HttpWebRequest.IfModifiedSince
に更新時刻を出力すればサーバーとやりとりできました。
ETagに関してサーバから取得、出力するにはどうしたらいいでしょうか?
出力に関しては
HttpWebRequest.IfNoneMatch
でETagをサーバーに送信できるようですが、ETagの取得に関しては
どう操作すればいいか分かりません(´・ω・`)
ここで特定のフレームワークのこと聞かれてもな まあ、普通に考えれば任意のヘッダを送受信する手段くらいあるはず 探せ
ETagにしろ更新日時にしろ応答ヘッダで返ってくるんだが
まずHTTPの資料を読むことを薦める
あと、
>>902 の方法だと透明あぼーんしか検知できなくないか?
subject.txtを毎回取得しにいく仕様もどうかと思うぞ
>膨大な数のdatファイルごとにIf-Modified-Since値を記憶しておくのは管理が面倒です。 そもそもこんなことを言ってる時点で(以下略 他の専ブラ参考にすれば? datと同名のidx作って管理するとか、データベース使うとか、datの扱いの基本中の基本でしょ。
たまにだけど、subject.txtのレス数と実際のレス数が違うことがあるから100%信用すると痛い目に遭いそう 秒単位の更新チェックは知らなかった・・・ツール更新しなきゃ
910 :
899 :2008/09/30(火) 15:08:16
ETagはサーバーが返してくる値をローカルに保存しておかないといけないですか? ローカルに保存したdatファイルからETag用の値を計算できればわざわざ ローカルにETag値を保存しておく必要は無くなると思うのですが。
じゃあそうすれば?
ローカルに ETag を算出…?どうやって?まさか「ETag 計算方法」とかでググって 出てくるものを実装して「たまたまそのとき一致したらからおk」とか思ってないよな?
弱いETagならローカルで算出やつでも通用するんじゃない? 強いETagはまず不可能だろうけど
914 :
899 :2008/09/30(火) 21:45:35
話は変わりますが、サーバーにDATを要求し、返ってきたヘッダーに書かれた情報を見ようと GetResponseHeader("Content-Range") という命令を書いてみたのですがなぜか何も取得できませんでした。 GetResponseHeader("Content-Length") GetResponseHeader("Content-Type") はきちんと値が返ってきました。 2chの鯖には変数"Content-Range"を返さないものがあるということでしょうか?
送るヘッダが間違ってるだけだろ
誰か多段ポップアップの方法をVBでお願いします。 あれはスキンとかに対応してjavascriptで実装したほうが簡単なのでしょうか…
917 :
899 :2008/09/30(火) 22:47:34
もう一つヘッダがらみの質問です 2chでは転送量を抑えるためGZipで圧縮をかけたデータのやりとりを推奨 しているようです。そこで以下のように(言語はC#です)GZipフラグをヘッダ に付けてリクエストを出すようにしています。 webRequest.AutomaticDecompression = DecompressionMethods.GZip; ただこの方法だと差分取得で問題が発生してしまいました。 webRequest.AddRange( fileSize ); の fileSize の部分にローカルにDLしたDATファイル(GZip圧縮は解除され 平文のテキストファイルです)のファイルサイズを調べて指定したのですが、 どうやらGZipフラグを付けると AddRange で指定すべきファイルサイズは GZipで圧縮したときの容量ではないといけないようなんです。 ローカルのDATファイルのファイルサイズを指定すると416:RequestedRangeNotSatisfiable が返されてそれ以降DATを取得できなくなってしまいます。 GZipで差分データをやりとりするときは、GZip圧縮をかけた状態で受け取った DATのサイズを計測し、それを累積加算しながら AddRange でリクエストしない とデータは取得できないのでしょうか?DATファイルひとつごとにGZipで受け取った ときのサイズを累積加算してローカル側に記憶しておく必要があるうえに、 万が一その値を失った場合は最初からDATを取得しなければならない等 不便が予想されるわけですがみなさんはどうやって対処されていますか?
今はgzipなんて推奨してません。
というのはウソです。
関連するAPIをぜんぶ実装して モジュールとして公開してくれてるひとっていますか?
922 :
899 :2008/10/01(水) 01:15:16
>>917 に自己補足です。
GZip圧縮を有効にしたとき、鯖によってうまくいったりいかなかったりするようです。
実況鯖はGZip圧縮をONにしてもうまく差分取得できました。
一方でN速+といった通常鯖はGZip圧縮をONにすると
416:RequestedRangeNotSatisfiable
エラーが返されてしまうようです。
2ちゃんはGZip圧縮は非推奨ってことなんでしょうか(´・ω・`)?
>>921 ありがとうございます。
時間ができたときにソースコードを読ませてもらいます。
転送量が問題だったのは過去の事
924 :
899 :2008/10/01(水) 01:25:33
>>923 > 転送量が問題だったのは過去の事
そ、そうなんですか(;´∀`)
それでは多くの2ちゃんブラウザではGZip圧縮をかけずに転送してるんでしょうか?
今はサーバーリソースの方が問題だからそもそもgzipの圧縮をやらない。
926 :
899 :2008/10/01(水) 02:02:23
>>921 >
http://www.geocities.co.jp/SiliconValley/5459/ で紹介されたTwinTailブラウザのソースをざっとですが見てみました。
ソースコードの中に
「datファイルがgzip圧縮されていればtrue、そうでなければfalseを指定する」
と記述されたパートがありました。もしかしたら鯖ごとにdatがGZip圧縮されて
いたりされていなかったりするということでしょうか?
>>922 の例で言えば実況鯖はGZip圧縮がONで、それ以外の一般鯖はGZip圧縮
がOFFだったため、違いが生じたのでしょうか?
だとしたら何らかの方法で鯖ごとにGZip圧縮されてるかされてないかを識別し、
それに従ってdatをフェチする際にGZip圧縮フラグをONにするかOFFにするか
自動選択させればどの鯖にも対応できるようになるかもしれません。
あるいはGZip圧縮は無視して全鯖非圧縮でdatを取得するようにしてしまっても
いいかもしれませんね(´・ω・`)
GZIP要求を出して圧縮されて返ってくれば解凍、datで返ってくればそのまま
どちらの形式で返ってきたかは応答ヘッダを見ればいい
GZIP圧縮すべきかどうかは
>>248-249
HTTPプロトコルを理解するためにRFC2616を読んだり Wiresharkとかで既存ブラウザがどういう通信しているか見ればいいのに
929 :
899 :2008/10/01(水) 13:00:32
>>927 もう一度調べてみたんですが、要求ヘッダに
req.AutomaticDecompression = DecompressionMethods.GZip;
とGZipをリクエストしておけばほとんどの鯖はGZipで圧縮されたデータを
送信してくれるようです。
では問題は何かと言いますと、初回以降の差分要求をするときにヘッダー
に付けて送信する If-Range ヘッダーに記述する容量を、圧縮されたとき
のものにしておく必要があるようなんです。
たとえば生では10バイトのDATをGZip圧縮して送信してもらったとします。
GZip圧縮をかけた結果5バイトに圧縮されたとします。
すると次回以降差分要求をするときに If-Range ヘッダーには10バイトでは
なく5バイトと記述しておかないと正しく差分データが受信できないようなんです。
そうでないと鯖からエラーコード416が返されてしまうようです。
これは結構ゆゆしき問題なんです。
ローカルに保存したDATは当然GZip圧縮を解除した状態なので、GZip圧縮を
かけたときのサイズを If-Range ヘッダーに記述するには、圧縮されたときの
のデータサイズをDATファイルごとにどこかに記憶しておく必要があるんです。
管理が面倒になるうえにこの圧縮されたときのサイズのデータが吹き飛べば
DATは最初から再取得しなければならなくなるんですね。
GZip圧縮は綺麗さっぱり忘れて無圧縮状態でデータを送信するようにした
ほうがいいってことなんでしょうか?
あるんです。
>>929 差分取得の時はAcceptEncodingにgzipを付けずに生で受け取る。
初回のレス1から読むときのみAcceptEncodingにgzipを付ける。
でホントにgzipだったら解凍する。生だったらそのまま。
ま、最初はgzip無視で作っちゃってもいいと思う。
君一人が非圧縮で受信したところでたいした負荷でもないし。
余裕出来たら、レス1から読むときはgzipで読むでいいのでは。
あと、HTTPサーバーの基本知識をもう少し付けるべきだと思うけど、 独自仕様もあるので注意。 板移転はレスポンスにステータスコード301,302といったリダイレクトが返ってくるわけじゃない。 200が返ってきて、中のjavascriptの window.href=移転先URL を見ないと駄目。しかも移転先に、さらに移転先が書いてある場合も。
932 :
899 :2008/10/01(水) 15:31:30
>>930 > 差分取得の時はAcceptEncodingにgzipを付けずに生で受け取る。
> 初回のレス1から読むときのみAcceptEncodingにgzipを付ける。
> でホントにgzipだったら解凍する。生だったらそのまま。
その手がありましたか(`・ω・´)!
言われてみれば圧縮されたgzipファイルを差分取得するっておかしな概念ですよね。
レスが加えられていくごとに圧縮ファイル全体はつど変化していくわけですし
そうなればif-Rangeで範囲指定をしても取得できるデータに誤差が生じるのは
当たり前です。
Janeといった一般的なブラウザも差分取得時は無圧縮で取得してたりするんでしょうか?
ちなみにC# + .NET2.0で開発していますがこれ幸いか落としてきたデータの
gzipを解凍する手順はプログラマーが意識しなくてもいいようです。
勝手に解凍してくれるようで普通にReadToEnd()で読めちゃったりしています。
>>931 了解です。移転の検出は実装したほうがよさそうですね。
何度でも書くけどHTTPの資料読もうな 脊髄反射で質問するのはもう止めような
>>932 他のブラウザがどう動いてるかはパケットキャプチャを使って調べる。
935 :
デフォルトの名無しさん :2008/10/02(木) 06:09:25
>>933 HTTPの資料嫁とか方向違うだろ
どう見ても言語側でHTTPアクセスをサポートするライブラリ使ってるっぽいし
HTTPの資料読んでたら半分は質問減ったと思うが C# + .NET2.0で開発してる人は読まないのか?
937 :
デフォルトの名無しさん :2008/10/02(木) 08:20:43
>>935 HttpWebRequest/Responseは、HTTPの仕様を知ってはいるんだけど、
自分でリクエストを組み立てたりレスポンスヘッダを解析したり
chunk転送をデコードしたり、KeepAliveを管理するのが面倒な人向け。
938 :
デフォルトの名無しさん :2008/10/02(木) 08:41:45
HTTPの仕様は読む必要あるだろう if-modified-sinceやらe-tag、クッキーの仕様とか知らんと話にならん。 俺も浅い知識で組んだせいで後の修正大変だった。 一番大変なのは2ちゃんのどこにも明記されてないような謎仕様と トライアンドエラーで戦わないと行けないことだ。
>>939 そういうのは、monazilla-ML(だっけ?)に入って聞いたほうが早いんじゃない?
あれまだ機能してんのかな・・・
942 :
899 :2008/10/02(木) 20:32:17
>>937 C# with .NET2.0の環境でもヘッダを解析したり構築したりして
送受信されてる奇特な方っていらっしゃるんですか?
HTTPの意味もよく分からず開発を始めて質問しまくる人とか 人の忠告を聞かない人はよく見かけるね
っ 鏡
>>942 プログラムの勉強をしたい人とか、生粋のプログラマとか。
車輪の再発明と言われるけどプログラムやプロトコルを勉強するには
一から作るのが一番良い方法だと思うよ。
作ったうえでライブラリを使うともっと理解が出来る、ただ使うだけなら疑問を持たず
「そうなんだ、こうしないとダメなんだ」で終わらしておく方が良い。
HTTP1.0はシンプルだから、ソケット使って自前で通信したほうが 用途によってはコードも分かりやすいこともある
1.0 限定ならな… 1.1 になるととたんに面倒くさくなる。 クライアント側が GET 〜 HTTP/1.0 しているのに、HTTP/1.1 で返事を返してくる サーバって多いはずだけど、Apache ってどうだっけ?
>>947 HTTP/1.1という返事は、「うちのサーバーは1.1まで対応してますよ」って意味であったはず
よく読むスレを登録しておき、未読スレがないか一度に確認させるプログラムを 作ろうと思っているんですが、各スレを連続で読み込みするのにどのくらいの 時間をおけばいいものなんでしょうか? それともそういうことは気にせず、いくつスレを登録してようと一度に一気に 読み込むプログラムを組んでしまっていいものなんでしょうか? 2ちゃんの方で明確な指針が掲載されていないと言うことは常識の範囲内で、 ということなんでしょうが、どのあたりが常識とか決まっているんでしょうか?
↑あと上記に絡んだ質問です。 過度に連続読み込みしたことで2ちゃん側からシャットアウトされる可能性って ありますか?もしシャットアウトされたとしたらどんな返答が返ってくるんでしょうか? シャットアウトされたことも知らずに続けて連続読み込みのリクエストを出し続ける と後々問題になりそうなので・・・
>>951 「ばーぼん」ですか・・・
ちょっとググッてきます。
>>952 とはいえ、きょうび巡回機能が無い2ちゃんブラウザなんてお話にならないかと・・・
未読チェックだけならsubject.txt取得だけでいいだろ
>>954 チェックしたいスレが複数の板をまたがると
複数の板のsubject.txtを取得すればいいだけの話だあろ
リードのみでも連続アクセスするとばーぼんへ飛ばされるんですね。 ばーぼん回避のためにスレ1つ読むごとに1秒間のウェイトを入れておこうとおもいます(´・ω・`)
バーボン飛ばされたらつなぎなおせばOK
こういうことはあんま言っちゃいけんのかもしれんが プロクシサーバを複数確保して巡回させればボボン回避は 十分可能なんじゃないか?
複数確保が簡単にできる環境は少ないんでは。
「ダメだ!辞めろ」と言うつもりはありませんが、 どれくらい時間をおけば「許される」というものではないと思います。 限界ギリギリを狙おうとするのではなく、可能な限り負荷をかけないよう 配慮する発想の方が健全だと思います。
>>925 折角、GZIPInputStream調べてgzip転送に対応しようと思ったのに必要なかったのか。・゚・(ノД`)・゚・。
>>925 gzip圧縮やってないってどこのサーバ?
>>963 今もAccept-Encodingにgzip設定すれば圧縮して返してくるから
クライアント側は対応しておく方がベターでしょう
>>964 そうなん(・∀・)?実況専用ブラウザにしようと思ってるけど、じゃあそうしよう。
多くの2ちゃんブラウザでは鯖移転を自動的に検出して対応していますが、 これはどういう仕組みで追尾しているんでしょうか? できればこの便利な機能をマイブラウザにも実装したいと思っています。
なぜ
>>967 を無視する。
location.hrefを辿ってくだけだ。
<html>
<head>
<script language="javascript">
window.location.href="
http://qb3.2ch.net/operate/ "</script>
<title>2chbbs..</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">
</head>
<body bgcolor="#FFFFFF">
Change your bookmark ASAP.
<a href="
http://qb3.2ch.net/operate/ ">GO !</a>
</body>
>>971 どうも、やはりすぐに転送されたためにそのページは飛ばされて見えなかったようです。
>>973 Webサーバ(アパッチ?)の設定により、URLを/で止めた場合のアクセスは異なる
/で止めておけばWebサーバ側が設定によりindex.htmlとかindex.cgiとかを返してくれるから/で止めておけばいいと思う
(´-`).。oO(971を読めば判ると思うけれども。。。2ch鯖監視係。もそうしています。@板移転自動追尾)
どうもです。index.htmlは抜きでトライしてみます。
977 :
デフォルトの名無しさん :2008/10/09(木) 23:41:37
いいんだよ
グリーンダヨ
板移転ってDATファイルを読み込んだり板一覧を更新するときに毎回 location.hrefのところを読んで検出してるんですか? それとも毎回検出するのは無駄ですか?
取得できなければ移転してんじゃね? 302ってなんだか良く分からんが。
302 Found おそらく「移転したよ」という意味。
委員長空気・・・
本来404を返す状況で ErrorDocumentが外部URLを指している場合 代わりに302が返る。 まめちしきな。
>>985 > ErrorDocumentが外部URLを指している場合
ここのところよく分からないんだが