このスレッドはアーカイブ化された過去ログです。

5ちゃんねる専用ブラウザ開発情報交換所アーカイブ

1.
ユーザー
JfBGp
ひまつぶしに作りたい方どうぞ
18
すべて
|
最新の50件
2.
ユーザー
JfBGp
色々情報書こうと思ったがNGワードが含まれてますとエラーが出て書けない
3.
ユーザー
98D4R
それよりガイジ追い出せよ
4.
ユーザー
bNXLW
ちょっと作りたい
5.
ユーザー
JfBGp
基本
1chの漢字コードはShift-JISである
接続先ポート番号はもちろんTCPの80番になります
スレッドのURLが
http://news2.1ch.net/test/read.cgi/newsplus/1000000000/ならば
ホスト名: news2.1ch.net
板キー: newsplus
スレキー: 1000000000
と定義します。
基本はこの3つだけです。簡単ですね?
では、どんどんいってみよー。
6.
ユーザー
JfBGp
読み
スレッド一覧の取得
subject.txtの場所
/板キー/subject.txt
subject.txtのフォーマット
スレキー.dat<>スレタイトル (総レス数)\n
http要求ヘッダ例
GET /newsplus/subject.txt HTTP/1.0
Accept-Encoding: gzip
Host: news2.1ch.net
User-Agent: Monazilla/1.00
Connection: close
要求が成功すれば200 HTTP_OKが返ってくる。

この例の場合、要求ヘッダでgzip圧縮を受け入れるようにしているため、応答ヘッダで圧縮されているか確認して、必要ならば解凍しなければいけない。
圧縮されたかどうか確認するには、応答ヘッダContent-Encodingにgzipがあるか調べる。

1chでは、転送量問題が発生した時から、データをgzip圧縮して返すことを推奨(必須?)している。
圧縮要求しなければデータを取得できない、なんてサーバもあったような気が。。

ユーザエージェントは、とりあえずモナジラと名乗っておきます。

subject.txtが更新されていなかったらデータを取得しないように、If-Modified-Sinceを付けて要求するのも、無駄な負荷を減らすポイントです。
7.
ユーザー
JfBGp
DATの取得
DATの場所
/板キー/dat/スレキー.dat
DATのフォーマット
名前<>メール欄<>日付、ID<>本文<>スレタイトル(1行目のみ存在する)\n
http要求ヘッダ例
GET /newsplus/dat/1000000000.dat HTTP/1.0
Accept-Encoding: gzip
Host: news2.1ch.net
User-Agent: Monazilla/1.00
Connection: close

要求が成功すれば200 HTTP_OKが返ってくる
見つからなければ302 HTTP_MOVED_TEMPORIALYや404 HTTP_NOT_FOUNDなどが返ってくる
8.
ユーザー
JfBGp
書き
レスを書き込む
POSTする場所
/test/bbs.cgi
http要求例
POST /test/bbs.cgi HTTP/1.0
Host: news2.1ch.net
Content-length: ポストするデータのサイズ(バイト)
Referer:
http://news2.1ch.net/newsplus/
User-Agent: Monazilla/1.00
Cookie: NAME=名前; MAIL=メール; SPID(PON)=値; expires=有効期限; path=/
Connection: close

bbs=newsplus&key=1000000000&time=1&submit=書き込む&FROM=名前&mail=メール&MESSAGE=本文
ポストするデータの内容
bbs
板キー
key
スレキー
time
1ch側の書き込みフォームが生成された時刻。time関数の戻り値である。
たいがいの1chブラウザはローカルで時刻を生成していたが、規制によって未来からの書き込みが禁止になった。 ローカルの時計が狂っていると永久に書き込めないのである。
そこで現在は、datを取得した時の応答ヘッダにあるDateヘッダの値から逆算するなどの工夫が取られている。
しかし、1ch側では有効期限をチェックしていない、ちょっとアレな仕様のため、適当に大昔の時刻を入れても大丈夫なのである。
submit
書き込みボタンのキャプション。通常は"書き込む"。文字列はURLエスケープしておきましょう。
これがないと「SJISで書いてね」とか怒られる。初めて1chとお話しすると、まずこの罠に嵌ります。
FROM
名前。URLエスケープしておく必要があります。FROMは大文字であることに注意!
URLエスケープ
半角空白→「+」
「エスケープ」→「%a5%a8%a5%b9%a5%b1%a1%bc%a5%d7」
mail
メール。URLエスケープしておく必要があります。
MESSAGE
本文。URLエスケープしておく必要があります。MESSAGEは大文字です。
sid
セッションID。ログインすると発行されるあれです。ログインしていないなら不要。
もし付与するなら、これもURLエスケープしておきます。
9.
ユーザー
JfBGp
5ちゃんねるがNGワードになってるから1chって書いてるけどそこは修正してね
10.
ユーザー
bNXLW
広告の何%もらえるんだろ
11.
ユーザー
JfBGp
https://menu.1ch.net/bbsmenu.html
https://menu.1ch.net/bbsmenu.json
※1chは1を5に入れ替えてね

板一覧はbbsmenuから板名とURLを抜き出して作る
htmlとjsonはどちらでもよい
12.
ユーザー
JfBGp
>>10
新5ちゃんねるは広告料の分配は廃止された。自分で広告会社と契約して広告入れるのはOK
talk.jpはその辺の情報は公開してなかったと思うが旧5ちゃんねる時代は月2000~3000ドルだと言ってた人がいた気がする
13.
ユーザー
JfBGp
DAT取得のURL変換実例

スレのURLからDATのURLに変換してダウンロードする

欲しいスレのURL
http://mevius.1ch.net/test/read.cgi/tech/1687260267/
↓
DATのURL
http://mevius.1ch.net/tech/dat/1687260267.dat

※1chを5に変えてください

ダウンロードしたDATを加工させて表示すればOK
簡単なのはブラウザコントロールを使って表示させる事
AndroidでもWindowsでも大抵の開発環境で可能
14.
ユーザー
wcQ09
必死に誘導したい人が痛々しいスレw
15.
ユーザー
KjG7r
勢いの計算式教えて
16.
ユーザー
LTXpq
今日もお仕事ご苦労様です
17.
ユーザー
NcGWl
トークは勝手に開発していいの?
18.
ユーザー
MOCE7
>>15
「勢い = レス数 / (現在のUNIX時間 ? スレッド内の1番目の投稿のUNIX時間) ÷ 86400(24時間)」
このスレッドはアーカイブ化された過去ログです。