monazilla Part 6

■ このスレッドは過去ログ倉庫に格納されています
2008/10/20(月) 05:58:19
2ちゃんねる専用のブラウザを作っちゃおう
というプロジェクトです。

Part 1 http://pc.2ch.net/test/read.cgi/tech/981726544/
Part 2 http://pc.2ch.net/test/read.cgi/tech/1005282763/
Part 3 http://pc3.2ch.net/test/read.cgi/tech/1012544484/
Part 4 http://pc2.2ch.net/test/read.cgi/tech/1042432238/
Part 5 http://pc11.2ch.net/test/read.cgi/tech/1057329161/

monazilla.org (w
http://www.monazilla.org/
77デフォルトの名無しさん
垢版 |
2009/03/08(日) 13:01:49
てst
2009/03/09(月) 11:17:08
[test] 書き込みテスト 専用スレッド 147 [テスト]
http://qb5.2ch.net/test/read.cgi/operate/1236338541/
2009/03/14(土) 08:57:12
そうかなあ
2009/03/26(木) 14:25:49
最近SUNOSさん見ないなあ
2009/03/30(月) 22:39:40
こないだどっかで見たな
2009/04/04(土) 21:46:38
tepo=don飛来!
2009/05/06(水) 04:58:26
捕手
2009/06/02(火) 19:23:04
6月!
2009/06/11(木) 09:51:36
こんなのあった
http://jane.s28.xrea.com/test/read.cgi/bbs/1244183378/106

ライブドアさんに板名取得のAPIを用意していただけましたので、
このAPIを用いて「したらば掲示板」の板やスレッドを、板の追加の操作なしで読み込めるようにしました。

以下は専用ブラウザ作者向けの情報です。
====================================================
http://jbbs.livedoor.jp/bbs/api/setting.cgi/[カテゴリ]/[番地]/
で、掲示板の基本情報を取得できるようにしてみました。

レスポンスの内容は
---
TOP=掲示板TOPページURL
DIR=カテゴリ
BBS=番地
CATEGORY=カテゴリ日本名
BBS_THREAD_STOP=1スレッドに書き込めるレスの上限
BBS_NONAME_NAME=名無しさんの名前
BBS_DELETE_NAME=削除されたレスに付く名前(あぼーん)
BBS_TITLE=掲示板タイトル
BBS_COMMENT=掲示板の説明文
----

レコードは改行(LF)区切りで KEY=VALUE の形式になっています。
(VALUE 中にも = が入る場合があるので、最初に出現する = までが KEY になります。)
キャラクターセットは EUC-JPで、タグなどの htmlエスケープはしていません。

また、何らかのエラー(存在しない、休止中等)の場合「ERROR=エラーメッセージ」が返ります。
====================================================

なお「したらば掲示板」のread.cgiを叩く際は、MonazillaのUserAgentを名乗って欲しいとのことです。
2009/06/22(月) 19:59:50
はじめまして。
AIR版2chブラウザの作成にチャレンジしています。

懸念していたgzip解凍もクリアし、板一覧、スレッド一覧取得まで作ったのですが、
掲示板名として一意に識別できるのは、日本語の表示名と、
URL内のサブディレクトリ名(板名)のどちらなのでしょうか?
2009/06/22(月) 20:19:55
>>86
2ch.net以外の互換掲示板に対応させないなら、サブディレクトリ名で良いと思います

互換掲示板に対応させる為に、私の所ではhost名とディレクトリ名をキーにしています
2009/06/22(月) 20:28:42
>>87
なるほど・・・
ありがとうございます。
89デフォルトの名無しさん
垢版 |
2009/07/18(土) 20:21:33
DAT落ちしたかどうかの判断って302:Foundが返ってくるかどうかで判別つくとおもう?

302:Foundが返されたらそのスレはDAT落ちしたものと判断して間違いないだろうか?
2009/07/19(日) 01:52:23
ばーぼんも302。
まあこいつはLocationで区別できるかな。
あと、たぶん人大杉も302(これはread.cgiだけかも)。

要は、エラーの大半が、ErrorDocumentを外部に設定しているので
302が返るようになってる。
500とかはそのままだけどね。
2009/07/19(日) 03:20:39
>>90
DAT落ちではなく鯖の一時的な不具合でも302:Foundが返ってくる可能性があるということだよね・・・
スレがDAT落ちしたかどうかの区別って難しいね(´・ω・`)
2009/07/19(日) 13:06:27
datをチェック→落ちたっぽい→read.cgi経由でアクセスしてhtmlを取得して判断とかは?
read.cgiにアクセスさせるのは専ブラでやるべきではなさそうだけど・・・
2009/08/16(日) 21:25:12
subject.txtを取得してスレッドが存在するか確認、ってのは?
2009/08/16(日) 22:33:27
そこで anydat.so ですよ
2009/08/17(月) 11:14:13
昔subject.txtが0バイトで200 OKが返ってきたことがある
2009/08/17(月) 16:16:00
今でもしょっちゅう
2009/11/01(日) 15:56:41
98デフォルトの名無しさん
垢版 |
2009/11/10(火) 19:30:54
かちゅの2channel.brdの最初の行の2って数字は何を意味してるの?
Jane系だと他の数字が入ってるけど、この行の意味はなんだろう

それと、カテゴリ名のあとの0って数字の意味は何?
2009/11/24(火) 00:34:02
subject.txt で
スレ立て日時はdat番号から分かるけど、
最後にレスがついた日時や、ブラウザで表示されるスレの番号などは
どうやって取得するの?
2009/11/24(火) 01:33:33
日時は.datの更新日時だろ
スレの番号ってのは、そもそも何のことだかわからない
2009/11/24(火) 01:47:28
>>100
ってことは全てのdat に対して更新日時を読みにいくってことですね。

スレ番号はJaneでも表示できるんだけど、Webブラウザで板を開くと、
スレタイの頭に番号が表示されます。このことを言っています。
2009/11/24(火) 02:08:50
subject.txtの何行目かじゃないの。
2009/11/24(火) 04:06:35
>>102
なるほど、単純な事でしたねorz
ありがとうございます。
2009/12/15(火) 19:49:09
同じ板でスレ立て日時がダブることは無いのですか?
2009/12/16(水) 01:17:28
>>104
無いです
bbs.cgiレベルで重複チェックをしてるのはもちろんですが、万が一チェックをくぐり抜けたとしても
OSレベルで同じファイル名を付けることはできないのでありえないです
2009/12/16(水) 13:06:20
一秒単位以下でスレを作るのは不可能ということですね
2009/12/16(水) 17:06:37
カブったら1足すとかやってんじゃなかったっけ。
2009/12/16(水) 22:29:17
たぶんそう。

むかーし、
1と2に全然別の内容が書き込まれていて、
2のタイトル欄も空じゃない.datを見たような気がする。
2009/12/16(水) 22:53:48
>>105
2chではないだろうけど、VIPとか実際に同じ日時に立てられたスレがあった。
一覧には違う名前で出てるんだけど、どっちをクリックしても片方のスレが出てくる。
2009/12/17(木) 03:34:01
まぁそうなるよね。スレ立て時にsubject.txtに起きるのは
1) 新規ファイル作成 2) 今回のスレ情報を1行目に書く
3) 2行目以降に従来のsubject.txtを完コピ 4) それを新たなsubject.txtとしてにリネーム
だから、タイミング次第では同番号のスレが複数現れかねない。
でもdatファイルは1個しかあり得ないから、飛んだ先は同じになる。

喩えるなら、同時刻に2台の飛行機の搭乗者リストに載ることはできる(物理的に可能)けど、
同時刻に2台の飛行機に乗ることはできない(物理的に不可能)。
2009/12/17(木) 03:56:42
たとえを見てますます分からなくなった
2009/12/17(木) 03:59:40
とにかく、2ch以外ではあるかもよ、ってこと。
2009/12/17(木) 04:22:36
>>111
実体に関する情報は何かの手違いで重複できるけど、実体は重複できないということ。
2009/12/17(木) 11:44:51
>>111
ホテルの部屋番号1234567890号室が1部屋
予約が同時刻に入り
 Aさんが予約 → ホテルが受け付ける
 Bさんが予約 → ホテルが受け付ける
泊まりに来たAさんBさんともに1234567890号室案内される
2009/12/17(木) 11:54:51
この時、AさんとBさんの性別はどうなっているでしょう?(配点・10点)
2009/12/17(木) 18:15:14
おそらく別途インした
2009/12/17(木) 18:53:39
何がインだよボクにインしろオラァァァァァ!!
2009/12/29(火) 23:19:10
今時2ちゃんねるのデータを読み込むなんて流行らないかと思いますが、色々と作ってます。
monazillaのサイトの方を参考にさせて貰ってます。
2009/12/29(火) 23:36:51
そうか?
まだまだ開発の余地あると思うぞ
小中学生に受ける2ちゃんブラウザを俺は今作ってるわ
小中学生ならページにアフィのせててもさわがねーだろたぶん
2009/12/30(水) 07:16:13
ページにアフィのせたら2ちゃんねる出入り禁止になりませんの?
それがはっきりせんことにはやる気がでましぇん
2009/12/30(水) 11:02:21
それはここで聞くことではない。
2009/12/30(水) 22:15:05
>>120
どうやって出入り禁止にするんだ? それが知りたいぞな
2009/12/31(木) 12:07:37
>>119
もちろん余地があると思うので、手を出したわけです。
他の人とは違ったアプローチですけどね。
124デフォルトの名無しさん
垢版 |
2010/01/22(金) 02:43:11
2チャンネル上のsubject.txtをいじって、独自にsubject.txtを配信するようなものを作っています。
ただdatファイルの扱いで問題がありまして、知恵を拝借できませんでしょうか。

subject.txtをwebに上げて、専ブラに新板として登録するとスレッド一覧として読めました。
これを動的に更新すれば良いだけなので、なんとかいけそうです。
ディレクトリ構成とファイル名を仕様に合わせてdatファイルの読み込みも出来ました。
しかし、このdatファイルを動的に更新することはかなり面倒です。
datファイルを加工する気はないので、2ちゃんねるにアクセスしてもらうのが一番だと思います。
試しにdatファイルのリクエスト時にはHTTPリダイレクトで2ちゃんねるを指定しましたが、「301 Moved Permanently」で止まってしまいます。

他の手段としては、
・Proxomitronみたいなものを挟んで、ローカル環境で振り分ける。
・諦めてdatも配信する
くらいなのですが、他になにか良い手段は無いものでしょうか。
よろしくお願いします。
NGNG?2BP(8686)
c.2ch.netで過去ログを見たいのですが、
-ERR もう つかえません
と出ます。
どの辺が間違ってますか?

$_GET['sid'] = rawurldecode($_GET['sid']);
$_GET['sid'] = rawurldecode($_GET['sid']);
$s['uri'] = "/test/offlaw.cgi/{$s['board']}/{$s['thread']}/?raw=0.0&sid={$_GET['sid']}";
$sh = @fsockopen($s['host'],80,$errno,$errst,$s['timeout']);
$s['request'] = "GET {$s['uri']} HTTP/1.1\r\nAccept-Encoding: gzip\r\nUser-Agent: {$s['ua']}\r\nHost: {$s['host']}\r\nAccept: */*\r\nReferer: http://{$s['host']}/test/read.cgi/{$s['board']}/{$s['thread']}/\r\nConnection: close\r\n\r\n";
fputs($sh,$s['request']);
socket_set_timeout($sh,$s['timeout']);
while(!feof($sh)){
 $val = fgets($sh);
 if(strpos($val,"\r\n") == 0){break;}
 elseif(preg_match("/^HTTP\/1.[\d] ([\d]{3}).*\r\n$/i",$val,$match)){$h['status'] = $match[1];}
 $s['response'] .= $val;
}
$sh = @gzopen("http://{$s['host']}/{$s['uri']}","rb") or die("解凍できません。");
while(!feof($sh)){
 $i++;
 $val = gzgets($sh);
 list($name,$mail,$date,$body,$subject) = explode("<>",$val);
 $subject = trim($subject);
 $r[$i] = $val;
}
2010/01/22(金) 23:14:16
なんでsidをURLデコード2回もやってるの

あと関係ないけどchunk転送対応してないならHTTP/1.0にしましょう
1.0ならConnection:closeもいらないでしょ
NGNG?2BP(8686)
>>126
なんか知らないけど
URLに渡す時エンコード二回しないとエラーが出るからです

お手本が2つとも1.1だったのでした。
1.0でもいいんですねー
2010/01/23(土) 00:08:29
ほー?よくわからんな
ちなみにJaneXenoの通信をみると
raw=0.0じゃなくてraw=.0ってなってた 関係あるかわからないけど
2010/01/23(土) 00:20:50
ちょっと気になったのでtelnetでやってみたけど、最低限これで過去ログとれたよ

GET /test/offlaw.cgi/mysv/1219482693/?raw=.0&sid=Monazilla%2F1.00%3A(略) HTTP/1.0
Host: pc11.2ch.net
Accept-Encoding: gzip
User-Agent: Monazilla
NGNG?2BP(8686)
そうですか。貼った部分では問題なさそうですか。
他の所、疑ってみます。
とりま一旦ありがとうございました。
2010/01/23(土) 00:21:39
あ、ユーザーエージェントはちゃんとMonazillaになってるかな?
NGNG?2BP(8686)
>>129
おおっありがとうございます。
削ってやってみます。
NGNG?2BP(8686)
>>131
なってません!そこですか!!
NGNG?2BP(8686)
ダメでした。
135124
垢版 |
2010/01/23(土) 00:28:58
オミトロンではソケットオープンできないようなので、プロクシソフトを作ることにしました。
PHPと既存のソフトですべてまとめたかったですが、,netがんばります。

>>125
gzopenに放り込むと圧縮されていない場合でも対応出来たんですね。参考になります。
>>126
http1.0の案もいただきます
2010/01/23(土) 00:29:52
俺の手元だとUser-AgentがMonazillaで始まらないとだめだから、
原因の1つはこれで間違いないと思う
原因は他にもあるのかな
NGNG?2BP(8686)
私はヘタレですが、
一応仮にも公式なんで、classic〜なUAもいけるはず。
認証とsidの取得はそれでやってます。
おまけの●書き込みも順調です。
NGNG?2BP(8686)
書き込みとは仕様が違うって事でしたらごめんなさい。
139デフォルトの名無しさん
垢版 |
2010/01/23(土) 10:18:44
専ブラで見れるような板を作ったのですが、
dat/ と subject.txt は置いたのですが、
ローカルルールと看板をどう設置したらいいか
分かりません。分かる方教えてください。
2010/01/23(土) 10:59:53
>>139
ローカルルールは
http://pc12.2ch.net/tech/head.txt
ロゴは
http://qb5.2ch.net/sec2chd/SETTING.TXT
のBBS_TITLE_PICTURE
2010/01/23(土) 11:05:11
>>140
ありがとう何とかやってみます。
2010/01/23(土) 12:00:06
>138
違う。
2010/01/23(土) 12:14:18
telnetでできないなら情報不足。
山ほどある既存情報を好きに読む。

telnetでできることがプログラムでできないなら技術不足。
勉強する。

横着しない。
仕様やら実装やらよくある間違いやら、ちゃんと調べれば何も困らん。
2010/03/03(水) 17:11:37
なんかリロードの規制が厳しくなった気がする。
2010/03/03(水) 22:38:50
具体的にっ!
146デフォルトの名無しさん
垢版 |
2010/03/13(土) 16:09:57
ニュース速報板のsubject.txtをいじるソフトを作ってみました。
指定したBEによって立てられたスレッドをスレッド一覧から削除できます。
http://mod-news.appspot.com/test.zip
上記のURLよりファイルをDL&解凍してもらい。
専用ブラウザのプロクシの設定を変更してください。
readmeを同封しましたので、詳しくはそちらをご覧ください。

色々な環境で試してみたいのですが、協力してもらえますでしょうか。
よろしくお願いします。
2010/03/14(日) 03:43:54
いやです。
2010/03/14(日) 09:37:44
>>146
大よその専ブラで動くのかしら?
2010/03/14(日) 10:04:12
ソース公開しなさいよ
2010/03/14(日) 12:00:11
>>147
機能が限定的ですみません。

>>148
はい。プロクシに対応しているブラウザであれば動くはずです。
/news/subject.txtに対するhttpリクエストのみ自前のサーバへ転送しています。

>>149
クライアントのソースを追加しました。
http://mod-news.appspot.com/testwithsorce-code.zip
.NET Frameworkが必要になります。

サーバの方ではsubject.txtの仕様を満たせばいいのでほぼ正常に動くはずです。
クライアントのプロクシのソフトはサンプルコードを改変しただけなので、まだ動かない環境を把握できていません。
まずはクライアントのソフト経由でスレッド一覧が受信できるか、スレッドの受信できるのかを試して貰えますか。
2010/03/14(日) 13:29:55
えーと、質問を変えます
大よその専ブラで動くことを確認したのかしら?
2010/03/14(日) 15:41:54
>>151
JaneStyleとホットゾヌは試しました。
2010/03/14(日) 17:34:54
うーん、一通り試してから検証頼んで欲しかった
TwinTailもつかえる?

System.Net.WebException: リモート サーバーに接続できません。 ---> System.Net.Sockets.SocketException: 対象のコンピュータによって拒否されたため、接続できませんでした。 127.0.0.1:8088
って出るんだけど
2010/03/14(日) 17:45:47
ソース出てきたんだから
動かしたい人が直せばいいんじゃね。
2010/03/14(日) 17:58:32
動かしたい人なんているのか?
BE IDをNGワードに設定する機能なんて専ブラについてるのに
2010/03/14(日) 18:01:13
当然スレ一覧から削除する機能も
2010/03/14(日) 19:28:36
いないならいないでいいんじゃね。
2010/03/14(日) 19:36:35
テストに付き合わされて、動かなけりゃお前が直せっていい根性してるわ
159デフォルトの名無しさん
垢版 |
2010/03/14(日) 19:37:49
IDがないスレで本人が書き込んだかどうかわからにレスにマジ切れとか
2010/03/14(日) 20:06:12
subject.txt から特定スレッドを削除するだけのプロキシ?
2010/03/14(日) 20:48:02
>>158
自分の意思で付き合ったんでしょ?
2010/03/14(日) 20:58:57
なんにでも噛み付く奴がいるね
自我が安定しないんだろう
2010/03/14(日) 21:35:56
JaneStyleで使えない
2010/03/14(日) 21:36:46
って、自分で修正しなきゃいけないのかw
あほらし
2010/03/14(日) 21:38:20
>>153
ありがとうございます。
そのブラウザで試してみましたがエラーは発生しませんでした。ちょっと調べてみます。
ちなみにOSは何をお使いですか?専ブラではなんのエラーになっていますでしょうか?

>>155,156
datを取得しないかぎりBEの番号はわかりません。
そのためスレッドを開かずに元から削除できる方法は既存のブラウザではできないと思います。
なのでwebサーバで積極的な読み込みをしてDB化し、サーバ側でNGBEを実装しています。

>>160
色々機能は足しますが基本的にそれだけです。
アニメの偽装スレを特定できれば需要はあると思います。
2010/03/14(日) 21:46:21
>>163-164
ありがとうございます。
スレッド一覧の取得でのエラーでしょうか?何らかのエラー表示は出ましたか?
167デフォルトの名無しさん
垢版 |
2010/04/10(土) 18:21:16
2ちゃんにはボボン値って値が設定されていて単位時間あたりに取得しようとするレス数に制限が
かけられている。その制限値を上回ればアクセス禁止措置を執られるのは有名。

ところで5秒に一個の頻度でスレを取得するとして1分では最大12個のレスを取得できる。
ここで問題だけど1分間の冒頭で一気に12個のスレを取得してしまってそのあと一分間は自重。
というのを繰り返してもバーボン規制されずにすむとおもう?
2010/04/10(土) 20:03:44
ここを時々眺めれば
(その時の設定での)規制される
単位時間とその総リクエスト数は見当がつく。
http://qb6.2ch.net/_403/c403.cgi

ただ、その見当をつけた数字が常に同じではなく変動する(と思われる)ので
どの程度のリクエストなら大丈夫か、等には
明確に答えられる人は居ないと思う。
2010/04/10(土) 20:10:11
>>168
一番右側の数字が単位時間あたりにアクセスした回数かな?
でも上は125で下は8とだいぶ差があるね・・・
2010/04/10(土) 20:24:51
いや、一番右は残り規制時間
2010/04/10(土) 20:25:40
じゃない、逆だ
規制が開始されてからの経過時間
2010/04/10(土) 20:47:03
あ、残り時間だったのね。

ただ一方で単位時間あたりのアクセス数が同じでも一気に取得する方法と
まんべんなく取得する方法があるけどそれぞれ規制されたりされなかったりあるのかな?
173デフォルトの名無しさん
垢版 |
2010/04/14(水) 08:52:04
web上から普通のブラウザで2chを見られるビューアを作りました
http://web2ch.org/
2010/04/14(水) 13:59:54
p2劣化版じゃん
175デフォルトの名無しさん
垢版 |
2010/04/20(火) 02:11:41
バーボン対応の http://bg20.2ch.net から取れる dat データって何か違うの?
サーバが貧弱で遅いとかそういう話?
2010/04/20(火) 10:56:58
遅いのかどうかはわからんがキャッシュサーバーとか言ってるからリアルタイムじゃないのかな?
前実況あたりの速いスレで試したら1分に1回ぐらい更新してるみたいだった
2010/04/20(火) 21:06:13
後はdatが削除されたりして壊れると戻るまで時間が掛かる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況