X



トップページ開発室
132コメント109KB
Rokka System
0001水玉(Mizutama) ◆qHK1vdR8FRIm (もんじゃ)
垢版 |
NGNG
Rokka System is the new method to get 2ch/bbspink archived dats.
http://stream.bbspink.com/update.txt

1. get SID from https://2chv.tora3.net/futen.cgi?ID=example@email.com&;PW=password , not changed
2. request to Rokka with the SID
 URL http://rokka.<;DOMAIN>/<SERVER>/<BOARD>/<THREAD>/[<OPTIONS>]?[raw=0.0&]sid=<SID>

 DOMAIN : 2ch.net or bbspink.com
 SERVER : name of the server, pele,kilauea,...(bbspink) anago,awabi,....(2ch)
 BOARD : name of the board, news,entrance,.....
 THREAD : thread key(=thread number)
 OPTIONS : 2ch standard url options, l50 , 25-35 , -45 , 13- , etc...
 [raw=0.0] : option to get dat with GZip compressed (recommended)
 <SID> : authentication SID, UrlEncoding is recommended

 Response : 1st line indicates processed status of the server.
  "Success"  - The process has successfuly done. Following lines are achieved message with dat format(name<>email<>datetime<>body<>[title]).
  "Error XXX" - The process has not succeeded. XXX is error code.
          Error codes:
          inputError = "Error 8008135"      invalid SERVER or BOARD or THREAD
          authenticationError = "Error 69"    invalid SID
          urlError = "Error 666"           invalid OPTIONS
          timeLimitError = "Error 420"       access too fast, interval between requests required


 exsamples
  http://rokka.bbspink.com/pele/erobbs/1285357421/?sid=Monazilla/2.00:4373....         get whole thread as plane text
  http://rokka.bbspink.com/pele/erobbs/1285357421/?raw=0.0&;sid=Monazilla/2.00:4373....   get whole thread with gzipped
  http://rokka.bbspink.com/pele/erobbs/1285357421/l50?raw=0.0&;sid=Monazilla/2.00:4373...  get 1 and last 50 posts

previous discussion http://qb5.2ch.net/test/read.cgi/operate/1366640919/87-
0086名無しさん@お腹いっぱい。(舞妓 どすえ)
垢版 |
NGNG
offlaw.txt見て合点が行ったけど、byte offset差分取得はかちゅ〜しゃ or それに準ずる専ブラ(Jane含む)にのみ
許可されている特別なメソッドという位置付けのようですね
zz_katjusha_raw はこれらの専ブラでのみ真になると(恐らくUAもしくはURI内の'sid=Monazilla...'部分から判定)

レス番指定と異なり、差分取得であっても "+PARTIAL" ではなく "+OK" を返したり、
liveなスレでは専ブラ側で行うLFチェックを鯖側で行っていたりと完全に固有の仕様と密な連携を想定しているっぽい

このソースで>>66の誤動作も説明がつくんじゃないかな?かちゅ〜しゃ系と判断されない (zz_katjusha_raw = 0) 専ブラが
byte offset差分取得を行おうとしたけれどそれは許可されない操作なので弾く、ただし弾いた先の遷移が全取得に流れており、
かつ全取得は "+OK" を返すので正常なbyte offset差分取得と見分けがつかないと
0087名無しさん@お腹いっぱい。(舞妓 どすえ)
垢版 |
NGNG
あとここにも初期の仕様の挙動が一部残ってました
ttp://age.s22.xrea.com/talk2ch/#rawmode

レス番指定の差分取得も本来既に指定フォーマットがあったのね →c)〜e)

■全件取得
a) /?raw=0.0&<*1>
→ +OK <all bytes>/<MAX_FILESIZE >> 10>K Location:temp/
  <body>

■バイトオフセットによる差分取得
b) /?raw=.<begin>&<*1>
→ +OK <partial bytes>/<MAX_FILESIZE >> 10>K Location:temp/
  <body>

■レス番指定による差分取得
c) /?raw=0.0&ls=<recent>&<*1>
d) /?raw=0.0&st=<first>&to=<last>&<*1>
e) /?raw=0.0&st=<first>&<*1>
→ +PARTIAL <partial bytes>/<MAX_FILESIZE >> 10>K Range:<begin>-<end -1>/<all bytes> Location:temp/
  <body>

<begin>/<end>: bytes offset of start/end (boundary, zero origin)
<first>/<last>: line number of start/end (one origin)
<recent>: recent lines count
MAX_FILESIZE: 0x100000..0x1FFC00 ?

<*1>: sid=Monazilla%2F<major>.<minor>%3A<sid>
0088名無しさん@お腹いっぱい。(舞妓 どすえ)
垢版 |
NGNG
byte offset差分取得をかちゅ〜しゃ系以外に許可しなかった理由は、
本来はレガシー仕様をよく知らない新しい専ブラにこのメソッドを許可したくなかった、という事情かなと解釈しました
このバージョンのofflaw.cgiがいつ稼動し始めたかは不明ですけれども・・・

とりあえず負荷よりも転送量を最優先に考慮しなければいけなかった頃からの歴史を見た気分ですね
レスを投稿する


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