したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

テストその2

1名無しさん:2002/11/28(木) 00:05
テストその2

202 ◆/vmukiyuzw:2014/09/21(日) 23:19:00
さて、「これはいったい何をやってるのか」という話ですが。

>>196
でちょっと書いたのですが、2ch.netのdatの取得方法が変わるという話が
上がっているのです。
(現行スレは http://anago.2ch.net/test/read.cgi/software/1409909191/

で、既存の専ブラは何らかの対応が必要になると思われているのですが、
更新が長く止まっていてこの仕様変更に対応できないのではないかと
危惧されるものも少なからずあり、
プロキシでread.cgi直読みしてdatに変換することで当面対応できないかという話も
上がってるわけです。

新仕様についての具体的な話はまだないので
この先どうなるかはまだ不明ですが、とりあえず何かできないかなと思って
まあ遊びがてらですがいろいろやってみているという状況です。

203 ◆/vmukiyuzw:2014/10/01(水) 20:33:55
> プロキシでread.cgi直読みして
て表現はおかしいですね
「datを直読みするのではなくread.cgiを叩いてdatに変換する」
というのが言いたかったことです。

さて、いろいろ面倒そうなのであまり手を出したくはないんですが
Fiddlerのスクリプトでローカルのファイルを読み書きする方法は
あるかないかだけ調べてみました。

Javascriptの仲間なのでFileSystemObjectとか使うのかとか思ったのですが
これは全然見当違い。
.NET フレームワークで作られたツールなので
そっちの方向から攻めるべきだったんです。

で、具体的にどうするのかというと、スクリプトの先頭付近に

import System.IO;

てのを追記します。
これでFileクラスなどが利用できるようになるので

var lines = File.ReadAllLines(filepath);

みたいにファイルの読み書きが可能になります。
この方向で拡張したいという方の参考になれば。

# FiddlerScriptやJavaScriptで検索してもなかなか情報は得られず
# 結局C#のサンプルコードを参考にしました

204 ◆/vmukiyuzw:2014/10/17(金) 20:01:17
とある要件で調べものをしているときに、以下のようなページを発見。

http://scripting.cocolog-nifty.com/blog/2010/01/dir-c6fe.html

ん?バッチファイルの中にJScriptらしきコードが書かれてる。
そんなことできるの?
と不思議に思い調べてみました。

わかりやすかった解説

http://atl.blog.shinobi.jp/html%EF%BC%86javascript/jscript%E3%81%AE%E5%AE%9F%E8%A1%8Clogo%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E3%81%8F%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%99%E3%80%82

・バッチファイルの中から自分自身をJScript(WSH)として呼び出す
・バッチファイルとJScriptのどちらで実行されてもうまくいくように
 トリックを仕込んでおく

ということのようです。
これにより、本来二つのファイルに分けるところのものを
一つにまとめることができるわけです。

私が知らなかっただけで実は結構定番のテクニックらしいのですが
かなりトリッキーな気もします。
こういうのを思いつける人は頭いいなーと感心してしまいました。

205 ◆/vmukiyuzw:2014/10/17(金) 23:13:39
>>203
> Javascriptの仲間なのでFileSystemObjectとか使うのかとか思ったのですが
> これは全然見当違い。

これは勘違い(というか調査不足)だったので訂正。

WSHだと

var fso = WScript.CreateObject("Scripting.FileSystemObject");

みたいにして使うのですがFiddlerScriptだとWScriptオブジェクトはないので
できないと決めつけてたのですが

var fso = new ActiveXObject("Scripting.FileSystemObject");

とする方法がありました。
これを使えば

var file = fso.OpenTextFile("Scripts\\SampleRules.js");
var text = file.ReadAll();

みたいにファイルアクセスが可能なようです。

206 ◆/vmukiyuzw:2014/10/18(土) 21:50:50
>>198
のスクリプトを修正しました。
 ・サーバによってはgzip圧縮されたレスポンスを返してくるようなので対応
 ・サーバによってはread.cgiのバージョンが微妙に異なるようなので対応
 ・USER-AGENTでMonazillaを名乗らないブラウザにはhtmltodat変換をしないよう修正

最初にテストしてたサーバではプレーンなレスポンスを返してきてたので
こういうものなのかなと思ったんですけど、サーバによっては
gzip圧縮+チャンクエンコーディングで返すものもあるとわかりました。
まあFiddlerスクリプトにこれに対応するメソッドがあらかじめ用意されてたので
それを呼ぶだけだったんですが。

それから、その同じサーバで返ってくるHTMLの形式が微妙に異なるものがあったので
正規表現をちょっと修正しました。

あと、Fiddlerは起動するとIE等の一般ブラウザのリクエストレスポンスにも介入してしまうので
USER-AGENTをチェックしないと一般ブラウザから普通に2chのページを読むことが
できなくなっちゃう(dat形式で表示されてしまう)ので対応しました。
まあこれは「専ブラはUAでMonazzilaを名乗るはず」との前提なんですが
この暗黙の前提に従わない専ブラもあるかもしれません。
その場合は適当に弄ってください。

207 ◆/vmukiyuzw:2014/10/18(土) 22:32:18
>>206
> ・サーバによってはgzip圧縮されたレスポンスを返してくるようなので対応
> ・サーバによってはread.cgiのバージョンが微妙に異なるようなので対応

この辺がサーバによって違ってたら嫌なんで
一応、今アクティブと思われる2chのサーバ
http://ch2.ma.cx/で表示されるもの)は一通り検証しました。

その結果、このスクリプトでかなり高い確率で
生datと完全に一致する変換結果datを生成できるのを確認しました。

---------------------------------------------------
ちなみに一致しないのは以下のようなケース

http://anago.2ch.net/test/read.cgi/software/1399253195/555

みたいに文字化けしてる場合
(これは多分故意にUTF-8としてPOSTしたものだと思われる)

FiddlerScript内部ではUnicodeとして扱うはずなので
SJIS→Unicode→SJISの変換が行われてると思われます。
この過程で正確に変換できない(元に戻せない)ものがでてくるようです。
まあこの辺は仕方ないですかね。

208 ◆/vmukiyuzw:2014/10/18(土) 23:03:25
それから、readmeにちらっと書いたのですが
この訳わからないスクリプトについての質問・不具合報告等は
当面このスレッドで受け付けようと思います。

あと、663さん(mirrorhenkanさん)の書かれたhtmltodat-convert2
http://mirrorhenkan.g.ribbon.to/jane/htmltodat-convert2/
についても、当面このスレッドでサポートしようと思っています。
(663さんは「htmltodatサポートには質問しないで」と書かれてましたが
現状ネットにアクセスするのが難しい状態なのかな?みたいなので)

209 ◆/vmukiyuzw:2014/11/07(金) 23:14:10
http://anago.2ch.net/test/read.cgi/software/1415161116/171

経験的にsendkeysは結構誤爆率が高くてあまり信用できないし
ちゃんとした終了待ちをせずにsleepで済ませてるのもなんだかなあ
と思いました。
かつては自分もよくこんなスクリプト書いてたなあと思うと
あまりネガティブなことも言えないんですが。

こういうのを簡単にかつちゃんとやるには実はpowershellがいいんだと思います。
プロセスの終了だとか終了待ちだとかが標準で用意されてますし。
http://technet.microsoft.com/ja-jp/library/dd315272.aspx

ただ、powershellでスクリプトを実行するには
セキュリティポリシーの壁を越えないといけないんです。
http://www.atmarkit.co.jp/fwin2k/win2ktips/1023ps1sec/ps1sec.html
「これ使えばできるよー」って人に勧めにくいんですよね・・・
使えれば相当便利なツールだと思うんですがちょっと残念。

210 ◆/vmukiyuzw:2014/11/24(月) 22:39:23
http://anago.2ch.net/test/read.cgi/software/1415161116/910

うーむ、やっぱ使えてる人はいるんだよね。
(うちでは使えているので当然かもしれないけど)

http://anago.2ch.net/test/read.cgi/software/1383498862/722

こういう方は何が悪かったんだろう。
「ログ速にもログがなかった」くらいしか思いつかない。
ここで聞いてくれたら何かサポートできたかもしれないんだけど。

211 ◆/vmukiyuzw:2014/11/25(火) 04:55:52
http://anago.2ch.net/test/read.cgi/software/1415161116/925

> これはXenoに実装されるべき

そんなんされたら私の居場所がなくなるんで勘弁してください^^;

212名無しさん:2014/11/28(金) 08:06:51
>>210
風邪でもないのにくしゃみが出たのでXenoスレから遊びに来ますた
普段は新しいパラメータを盗み読みするだけでサーセンwwwww

たしか●流出騒動直後のRokka開発段階で差分取得の仕様変更があった時かな
問題になった一部IDのNYANNYAN化に伴い旧式のdat差分配信から新式のdat全行配信へと変更され
専ブラ内部でもそれに沿った処理をするように各専ブラが軒並み仕様変更を余儀なくされたアレね
所謂さっしーえっち事件
多分その影響で取得済みスレに対してのアクションに各専ブラごとの仕様で若干の違いがあったり
または回復モードやdat落ち判定解除等の機能の有無やその使い方に違いがあったりと
各々の使用条件によって取得済みスレに対して上書きの可否が変わることもあるはず

特に開きっぱなしの強制dat落ち状態のスレタブではほとんどの専ブラで上書きが不可能なはずなので
Styleスレの彼は他の手段で取得に失敗したスレタブを開いたまま再取得を試みていたり
古いパラメータファイルを使ってるせいで表示がおかしくなったりしているのではなかろうかと妄想


>>211
あ、そいつ𠮟った時なんですが
こんだけ便利なツールを玩具呼ばわりしたのは謝ります
Jimは讃岐に対してでさえかなり冷たい態度だったので相当重度の重いコンダラ症候群と思われ
声高にログ速連呼してるやつがいるといつまたクローラタイサクガーに変身するか分からないんで
そこは方便ということでひとつ

213 ◆/vmukiyuzw:2014/11/28(金) 21:48:02
>>212
どうもです
いるかいないのかよくわからなかったhtmltodat-convert2ユーザーがいらっしゃったということで
今後もよろしくです

214 ◆/vmukiyuzw:2014/12/04(木) 02:11:09
fiddlerのスクリプトでスレタイの [転載禁止](c)2ch.net 等の文字列を消すことができるんじゃないか?
とdatのレスポンスを変換できないかいろいろやってたんですがうまくいかない。
なんか結果の文字列がUTF-8で返されてるようで
何とかしてSJISに変換しないといけないんだろうけど
方法がよくわからなくて放置してたんです。

そんでこないだ、「Jane系でばっかテストしてたけどV2Cで動くのかな?」
とふと思ってテストしてみたんですが、
いきなり「Content-Typeがtext-plainじゃないよ(text-html)」ってエラーで拒否られる。
Content-Typeをtext-plainにしてみる一行書いてみたんですが
やっぱUTF-8に文字化けしたスレしか取得できない。

ここでなぜか思い出したのですがContent-Typeには確か文字コード指定出来たよな・・・
でこんなコード追加してみました。

oSession.oResponse["Content-Type"] = "text/plain; charset=\"Shift_Jis\"";

これでなんとうまく動いてしまった・・・こんなので大丈夫なのか?^^;

もう少し検証したいと思いますが、fiddlerでは
スクリプトで設定されたContent-Typeからcharsetを検知して
相当の文字コード変換とかやってくれるのかな?

# プロキシとしてはこれくらいの機能は当然なのかな?
# だとしたら自力でプロキシ書くとか絶対無理だわ〜

215 ◆/vmukiyuzw:2014/12/05(金) 23:11:10
わざわざエスケープしたダブルクォーテーションでくくる必要はなかったようです。
以下でもOK

oSession.oResponse["Content-Type"] = "text/plain; charset=Shift_JIS";

あと、Shift_JIS の部分を EUC-JP とかにしてもちゃんとEUCのレスポンスが返されたので
まだ検証中ですがとりあえず言えるのは
・Content-Typeヘッダーでcharsetを指定してやると任意の文字コードで出力が可能
てことなのか。だとしたらかなり便利だ。

しかし前にも書いたかもですがfiddlerには日本語のドキュメント自体がなかなかない上に
こういう日本語の変換の取り扱いについてなんて記述は皆無?
徒手空拳でやってみるしかない状況です。
まあ未踏の世界に立ち向かってるようでそれはそれで楽しいんですけど。

216 ◆/vmukiyuzw:2014/12/06(土) 05:34:45
という感じで、fiddlerによるhtml→datの変換はまだいくつか問題はありつつも
少しずつ前進した感じなのですが、
datを直接読んでちょっと細工して返す、てなことをやろうとすると
(これはまあ本筋からは外れたお試しなのですが)これがまた文字化けします。
元データはhtmlもdatもShift_JISなのになぜdatだと化けるのか。

色々試して考えたのですが、htmlのレスポンスだと、自分で(metaタグのcharsetで)
「自分の文字コードはShift_JISですよー」て名乗るじゃないですか。
fiddlerは賢いので(httpヘッダのcharsetも理解するくらいだから)
これを判別してhtmlの文字コードはShift_JISだと認識しているんではないか。
だが、datでのレスポンスにはそういう識別コードがないので、文字コードを判別できない
(だから、おそらくUTF-8のつもりで読み込んでいるものと思われる)ため
文字化けが起こっているのだと推測しました。
ならdatのレスポンスをShift_JISだと認識させて読み込めればいいはずです。

var oBody = System.Text.Encoding.GetEncoding("SHIFT-JIS").GetString(oSession.responseBodyBytes);

うわ、ちょっと長いね^^;もっとスマートなのがあるかもですが
当面これしか見つからなかった。
System.〜で始まるので.netのメソッドを直接叩くのかな。

あとはこれを好きに加工した後、上のレスと同様 charset=Shift_JIS で出力すればいいわけです。

うーむ、なんか敵(じゃないけどね^^;)の正体が少しずつ見えてきたような・・・
結構手こずったけど思ったほど手ごわくはないかもしれない。
結局、入力・出力の文字コードを認識させるにはどうするかって話になるような。

217名無しさん:2014/12/13(土) 04:34:18
したらばで『〜』が『潤オ』に化けてたことを思いだして敢えてこのスレでリベンジしてみるテスト

218 ◆/vmukiyuzw:2014/12/18(木) 01:16:06
Fiddlerでの日本語変換について色々わかってきたので
一旦まとめといたほうがいいのかもですが、次に関心が移っちゃっているので
まあ落ち着いたら改めてということで。

で何に関心を持ってるかというと、Fiddlerのスクリプト以外での拡張。
スクリプトを書き換えての拡張は個人利用には楽なんですが
配布とかには面倒だし更なる拡張性とか考えるともっといい方法がないかと。
それがC#やVB.NETで拡張ができるのです。

http://docs.telerik.com/fiddler/extend-fiddler/extendwithdotnet

最初、同じ.NETなんだから今までのスクリプトの延長で
Jscipt.NETでもいけんじゃないの?といろいろやってみたんですが
徒手空拳ではうまくいかずドキュメント等もなく頓挫気味。
C#でやってみるとなんかうまくいったみたいなのでこの路線でとりあえずやってみます。
まあ前からC#やろうとか言ってながら回りまわってやっとたどりついた感じか。

219 ◆/vmukiyuzw:2015/01/15(木) 02:57:54
http://jbbs.shitaraba.net/bbs/read.cgi/computer/21256/1164941934/821

htmltodat-convert2を弄って何とかならないかと思ったのですが
2chとしたらばではURLの形式が微妙に違って
同じスクリプトで両方に対応させようとすると結構難しい部分があったので
htmltodat-convert3として別コマンドにしてみました。
(prmファイルを別にする以上コマンド自体別にしないといけないはずなんで
特に困ることはないかと思ったのですが)

http://mukiyu.g.ribbon.to/cgi-bin/download2.cgi?name=htmltodat-convert3&url=htmltodat-convert3.zip

使い方はhtmltodat-convert2とほぼ変わらないのですが
コマンドの第二引数に "$LINK$URL" を指定できるように
ちょっと修正してます(GetLogの仕様に近づけるため)。

>>208に書きましたがこのスクリプト関連のサポートは
私が勝手に引き継ごうと思っているので
何か問題等あればここで報告いただければと思います。

220 ◆/vmukiyuzw:2015/01/25(日) 01:55:33
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/821-822
の変更を受けてfiddlerスクリプトのほうも修正しました。
(ver1.03)
http://mukiyu.g.ribbon.to/cgi-bin/download2.cgi?name=htmltodatByFiddler1.03&url=htmltodatByFiddler1.03.zip

しかし>>218でちょっと書きましたがC#に移行しようと考えていて
実は当面の機能は移植できていてプラスの何かをやろうと考えてた時だったので
ちょっと引き戻されたような感じで少し残念ではあります。

221<削除>:<削除>
<削除>

222<削除>:<削除>
<削除>

223 ◆/vmukiyuzw:2015/01/27(火) 22:08:29
http://anago.2ch.net/test/read.cgi/software/1421448195/351

最近新しい正規表現作る機会がなかなかなかったもので
頭の体操がてら考えてみました。まあいつものちょっとした遊びで。
htmltodatではgzip圧縮に対応してるんで*.gzの形式でも
そのまま解凍して読み込めます。


コメント:
# http://atchs.jp/ の過去ログ変換できるかも-20150127

前処理:
s#(<title>)\s*(.*?) - 過去ログ .*?(</title>)#$1$2$3#iks
s#\tID:# ID:#g
s#\s{2,}(?!ID)##g
s#<br />#<br>#g
s#&nbsp;\[.*?\]##g

プレビューを表示しない:
false

正規表現:
m`<div\ class="res">.*?(?:<a\ href.*?>)?
(?# レス番号) (\d+)
(?:</a>)?.nbsp;名前:
(?# メール欄) (?:<a\ href="mailto:(.+?)">|<span\ style="color.*?>)?
(?# 名前) (.*?)
(?:</span>|</a>):
(?# 投稿日・ID) (.*?)
<p\ class="res_body">
(?# レス内容) (.*?)
</p>
`mikx

224 ◆/vmukiyuzw:2015/02/01(日) 00:32:00
http://anago.2ch.net/test/read.cgi/software/1418396135/890

このサイト見て
「そういやread.cgiにはrawモードてのがあったよな・・・
これ使えばhtmlからdatに変換しなくてもdat取れるんじゃ?」
と思って試してみたのですが、rawモードは廃止されてしまったのかな?
指定してもレスポンスは何も変わらないです。
dat直読みができなくなりそうな現状(まあポシャる気配も濃厚ですが^^;)
あったらよさそうな感じですけどね。

225 ◆/vmukiyuzw:2015/02/19(木) 22:25:20
http://anago.2ch.net/test/read.cgi/software/1424147714/19-20

htmltodatのfiddlerスクリプトで実現できていなかった差分取得を
このスクリプトでは実現できているので、とりあえず私の書いたスクリプトは
お役目終了かもしれません。
このスクリプトでいろんな専ブラで動作確認してみたんですがいくつかうまく動かないのがある。
どうも既存ログのサイズと新規に取得したサイズをきっちりチェックしてるものがうまく動かないようで、
responceCode = 206 となるケースで以下のコードが必要なようです。

oSession.oResponse.headers("Content-Range") = "bytes " + sbyte + "-" + (bodylength - 1) + "/" + bodylength;

と足したらうまく動くなるようになるものもありました。
手元で確認したものではJane系・V2C・ギコナビ・Live2ch・かちゅ〜しゃ は
新規取得も差分取得もうまくいってるようです。

「もうこのブラウザだめだ乗り換えよう」とか「.net以外に移住しよう」とか言っておられる方は
一度試して見られては。

226 ◆/vmukiyuzw:2015/02/19(木) 23:28:25
>>225
訂正。Live2chでは差分取得がうまく動きませんでした。
fiddlerスクリプトで差分取得かどうかを判定してレスポンスコードを書き換える場合

HTTP/1.1 206 Fiddeled

みたいなレスポンスになるんですがLive2chはそれを受け付けてくれないような?
(一般的には「206 Partial content」とかになる)

227 ◆/vmukiyuzw:2015/03/02(月) 00:55:46
htmltodatのfiddlerスクリプトなんですが、2点ほど壁にぶつかっていました。
・メール欄に全角文字が書かれていると文字化けする
・名前やレス本文にメールアドレスが書かれているとスレが壊れる

どちらもCloudFlareのemail-protection処理に起因する問題なのですが
なかなかやっかいでちょっとお手上げ状態で放置していました。
ところが、このemail-protection処理により2ch自体のread.cgiでも
スレが壊れたりセキュリティホールが発生したりという事態になって
emai-protectionは外されることになったようです。
よって、目の前の壁は勝手にどいてくれたかなという感じです。

これによってやれることはまだできたかなと思うのですが
まだまだ状況は流動的ぽいのでしばらくは様子見ですかね。

228名無しさん:2015/03/02(月) 04:03:37
ということはそのままで壊れなくなったってことか

229名無しさん:2015/03/02(月) 11:11:41
email-protection処理を無効化
変換は GET method だけ有効にする
で何となく動いている
当面これで乗り切れそう
ありがとうございます

230名無しさん:2015/03/19(木) 04:25:09
レス1だとレス取得が壊れることがあるのですが、
>>225はhtmltodatByFiddler1.03のどこにコピペすればいいんでしょうか?

231 ◆/vmukiyuzw:2015/03/19(木) 21:15:27
>>230さん

>>225のレスはhtmltodatByFiddlerについてのものではなく
http://anago.2ch.net/test/read.cgi/software/1424147714/19 さんの書かれた
スクリプト(以下19スクリプトと略す)についてのものだったんです。

で、19スクリプトのどこにコピペすればということになるんですが、
人の書いたスクリプトにケチをつけるようでなんなんですが
このスクリプトはhtmltodat変換の精度にやや問題があるような。
(メール欄の内容が失われたりレス本文の一部が特定の条件で欠けたりします)

ので、19スクリプトのまずい部分を修正するより、htmltodatByFiddlerに
差分取得ロジックを移植するほうが楽だし問題も少なそうなので
そうすることにしました。
次レスに続く。

232 ◆/vmukiyuzw:2015/03/19(木) 21:22:30
htmltodatByFiddlerを更新しました。(ver 2.00)
 ・差分取得に対応
 ・メール欄デコード処理は不要になったので削除
 ・USER-AGENTでのmonazillaの判定を外す
  (USER-AGENTを変更しても問題ないように)

readmeにも書いたのですが、
前バージョンまでで対応していなかった差分取得に対応しました。
ただ、その対応のためにdat変換処理を修正する必要があったため、
前バージョン以前を使って取得済みのログを更新しようとするとログ破損状態に
なってしまいます。
申し訳ないですが再取得してください。
もしくは、前バージョンで問題が起きていない場合は今回のバージョンアップは
見送るのでもいいと思います。
(Jane系の専ブラ等は自力で差分だけを取れるようになっているので
前バージョンでも問題なく動いてるはず)

233 ◆/vmukiyuzw:2015/03/19(木) 22:04:10
まあ差分取得とか言ってますが実際には全レス取得してブラウザには差分だけ返す
疑似差分取得です。
一般的な専ブラならログをローカルに保存してそこからの差分をリクエストするような
方式で動作してると思うのですが、それと同じようなことをやろうと思うと
やはりローカルに何らかの形で情報を保存しておかないと実現できないと思うんです。
実際その方向で実装しようと試行錯誤してたときもあったんですが、いろいろと面倒だし
多少重くはあるけど当面はこの形で行こうかと。

しかし、他にも専ブラ用プロキシソフトはいろいろよさげなものが出てきて
htmltodatByFiddlerなんてもうお役目御免かなくらいに思ってたのですが、
Fiddler(実績のあるプロキシソフト)+ソース丸見えのFiddlerScript
ていう安心の組み合わせはそれなりにニーズはあるのかな?
ダウンロード数が跳ね上がっていてちょっとビビってます^^;

234名無しさん:2015/03/19(木) 22:32:41
htmltodatByFiddler1.03(32bitWin7Xeno150312)で
>>230に似た症状が自分も出てたんですが
2.00にしたら無事直りました
個人的に使いやすいのでとても助かってます
ありがとうございました

235名無しさん:2015/03/19(木) 23:09:26
更新お疲れ様です

お絵描き機能の(http://maguro.2ch.net/oekaki/とか)
タグ除去置いておきます
BE周りの処置を弄っただけですが

//oekaki対応
oBody = oBody.replace(/<img src="http:\/\/(o\.8ch\.net\/.+?)">/ig,"http://$1");
//ここまで

//BE周りの処置と変換後の//1レス目にタイトルを付加の間に入れてます

236 ◆/vmukiyuzw:2015/03/19(木) 23:47:58
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/831-832

私が作ったものではないので積極的には推せなかったのですが
htmltodat-convert2 がようやく日の当たる場に出た感じですか。よかった。
あと、したらば過去ログがJaneStyleで読めないって方には
>>219 みたいなのもありますのでお試しいただければ。

237名無しさん:2015/03/21(土) 00:24:04
使い始めました。
感謝、感謝です。

238230:2015/03/21(土) 06:49:39
>>231
ありがとうございました!

239 ◆/vmukiyuzw:2015/03/22(日) 19:28:21
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/835 さん

http://anago.2ch.net/test/read.cgi/software/1426858616/907
にもありますが、

> 117のスレのように本文が長いレスが大量にある場合に起こるようです。
> read.cgiはdatの半角スペースの連続を1つの半角スペースに置き換える処理を行っていますが
> これを途中でやめてしまうのが原因のようです。

これに加えて、プロキシからはread.cgiに対し同じリクエストを投げているのに
返ってくるレスポンスでは半角スペースの連続を省略したりしなかったり
一定しない。これで416が発生するようです。
(read.cgiの潜在バグかもしれない)

とりあえず対処としては、半角スペースの連続を省略する処理を組み込んでしまって
read.cgi側でブレが出ても影響ないようにすることかと思いました。

oBody = oBody.replace(/ +/g," ");

↑これを

oBody = oBody.replace(/^(.*?<>.*?<>.*?<>.*?<>$)/m,"$1" + title[1]);

の後あたりに挿入。

対応したバージョンは追ってアップします。

240835:2015/03/22(日) 20:12:27
>>239
さっそくの対応ありがとうございます。
追加しまして無事に206にて取得できております。
ありがとうございました。

241 ◆/vmukiyuzw:2015/03/22(日) 22:33:01
htmltodatByFiddlerを更新しました。(ver 2.01、1.04)
 ・特定のスレで更新時に破損ログとなってしまう問題の対処ととして
  連続する半角スペースを1個に省略するよう修正

変更した部分は>>239のみです。
ver 1.xxで不都合がなくてまだお使いの方もいらっしゃると思うので
今回はver 2.xx、1.xx両方について更新しました。

ただ、今回もdat変換処理に修正が入っているため、
前のバージョンを使って取得済みのログを更新しようとするとログ破損状態に
なってしまう可能性があります。申し訳ないですが再取得してください。
(今回は長文が多くレス容量が大きいスレが危ないような)

242名無しさん:2015/03/22(日) 22:59:39
>>241
ありがとうございます!
chaika+htmltodatByFiddler2.00でフリーズしたことがあったので、1.03使ってました。
1.03で安定しているので、1.04使わせていただきます。

243 ◆/vmukiyuzw:2015/03/23(月) 00:25:38
http://anago.2ch.net/test/read.cgi/software/1427009587/56

200で返ってくるけど本来は404なり302になるようなやつをはじけば
いいのかな?

if (title[1] == "2ちゃんねる error 3001"){
oSession.responseCode = 404;
return;
}

こういうの入れとけばCPUが上がるのは避けられるような

244名無しさん:2015/03/23(月) 00:28:25
>>241
お疲れ様です!

2.01にてCPUが100%になるという書き込みがありましたので、
一応報告させていただきます。

専用ブラウザを助けるプロクシ作らね?7串目 [転載禁止]©2ch.net
http://anago.2ch.net/test/read.cgi/software/1427009587/56

56 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/22(日) 23:03:22.23 ID:8oJm1s6h0
htmltodatByFiddlerでCPU使用率が上がるのは
「datが存在しません。削除されたかURL間違ってますよ。」のスレを開いたときかな

245 ◆/vmukiyuzw:2015/03/23(月) 00:34:25
あ、>>243

//スレのタイトルを取得
var title = oBody.match(/<title.*?>(.*?)<\/title>/mi);

の後ね。
ちょっといろいろ試して問題なければバージョンアップします。

246 ◆/vmukiyuzw:2015/03/23(月) 02:28:49
http://anago.2ch.net/test/read.cgi/software/1427009587/156

確かにそうなのでこんな感じに修正したほうがいいか

if (!oBody.match(/<dl /)){
oSession.responseCode = 404;
return;
}

眠いので続きは明日以降に

247 ◆/vmukiyuzw:2015/03/23(月) 22:40:55
htmltodatByFiddlerを更新しました。(ver 2.02、1.05)
 ・2ch側で削除済みのスレを取得しようとするとFiddlerのCPU使用率が上がってしまう問題の対処として
  エラーと思われるhtmlが返された場合にステータスコードを404とするよう修正

今回もver 2.xx、1.xx両方について更新しました。
変更した部分は>>246のみです。
今まで自力で修正していて、今回も自力で反映させたいという方は

var oBody = oSession.GetResponseBodyAsString();

の後あたりに挿入していただければいいと思います。

248名無しさん:2015/03/23(月) 22:48:48
>>247
ありがとうございます!

249 ◆/vmukiyuzw:2015/03/24(火) 01:47:38
うわ、今気づいた
http://mukiyu.g.ribbon.to/
のトップを更新するの忘れてましたわ・・・
「バージョン変わってないじゃん?おかしいな〜」
という方は再度ダウンロードしていただければ・・・
ごめんなさい。

250名無しさん:2015/03/24(火) 05:31:48
>>249
乙です
一番使いやすい串なので使っております

251名無しさん:2015/03/24(火) 10:12:13
>>249
更新乙です。
fiddler+わかりやすいスクリプトはやはりいい!
愛用させてもらってます。

ところでこちらで生成したdatはLast-Modifiedがないようですがこれは取得が難しいのでしょうか?
chaikaで書き込みする際にフォームエラーが返ってきます。
ひとまずは下記のコードを追加して問題なく動作はしていますが
正確なLast-Modifiedの値ではないのでちょっとモヤモヤします。
oSession.oResponse["Last-Modified"] = oSession.oResponse["Date"];

datの仕組みはよく知らないので的外れかも知れませんが
最終レスのDATEをLast-Modifiedに返せれば正確な値となるのかな?と思っております。

252 ◆/vmukiyuzw:2015/03/24(火) 23:52:26
>>251さん

> 正確なLast-Modifiedの値ではないのでちょっとモヤモヤします。
> oSession.oResponse["Last-Modified"] = oSession.oResponse["Date"];
>
> datの仕組みはよく知らないので的外れかも知れませんが
> 最終レスのDATEをLast-Modifiedに返せれば正確な値となるのかな?と思っております。

Last-Modifiedを使ってエラーチェックをしてるブラウザがあるとは寡聞にして知りませんでした。
うーむ、思うにhtmltodat変換をしてる時点で正確なLast-Modifiedは存在しないわけで
最終レスの投稿日時とて=Last-Modefiedとなるとも100%は限らない
(ほぼイコールになるだろうとは思いますが)と思うので
それをやったところでモヤモヤは残るのでは。というか気分の問題かもしれませんね。
とかいいつつ以下のようなのも書いてみました。

var arr1 = oBody.split("\n"); //各行にばらす
for (var i = arr1.length - 2; i >= 0; i--){ //最終行が1001だと投稿日時が取得できないため後ろからなめる
var arr2 = arr1[i].split("<>");
var t = arr2[2].match(/(\d+)\/(\d+)\/(\d+).*?(\d+):(\d+):?(\d+)?\.?(\d+)?/); //投稿日時取り出し
if (t){
if (!t[7]) t[7] = "00"; if (!t[6]) t[6] = "00"; //古いログでは秒やミリ秒は存在しないものがあるため
var d = new Date(t[1],t[2],t[3],t[4],t[5],t[6],t[7]);
oSession.oResponse["Last-Modified"] = d.toUTCString();
break;
}
}

この前書いた

oBody = oBody.replace(/ +/g," ");

の後あたりに挿入してください。というかこんなのは関数化したほうがいいんだろうな。
htmltodatByFiddlerへの取り込みはちょっと考えさせてください。

253251:2015/03/26(木) 01:37:24
>>252
返信ありがとうございます。
Last-Modefied自体が元々存在しないとなると
最終レスの日付から取得しても偽データということなんですね。
となると言いだしっぺの私が言うのもあれですが
たかがその為に冗長的なコード増やすのは無駄だと思われますし
chaika限定かつ個人的な問題ですのでhtmltodatByFiddlerへの反映は不要だと思います。

ちなみにせっかく書いて頂きましたコードを追加しましたところ
最終レス日時の1か月後の日時がLast-Modefiedに格納されて
Last-Modefied>dateとなり不整合で結局エラーとなりました。
ひとまずは現状のLast-Modified=Dateで問題もないので
後は書いて頂いたコードを参考に自分でもう少し勉強してみます。
ご教示ありがとうございました。

254251:2015/03/26(木) 18:14:39
Last-Modefiedが1ヶ月ズレる件、解決できました!
dateオブジェクトの月は0〜11で表さなきゃいけなかったんですね。
なのでt[2]を-1することで正常な最終レス日時を返すことが出来て書き込みも可能と希望通りの結果となりました。
私の自己満足に付き合って頂き本当にありがとうございました。

255名無しさん:2015/03/26(木) 22:49:13
差分取得のちょっとした改善案です。

html変換のdatサイズより途中まで取得済みの正規のdatサイズの方が大きいがため、
本来追記されるであろう残りのレスがなくあぼーん分岐してしまうのを可能な限り防げるかと思います。

まず以下をスレタイ取得の前後何れかに入れる。

// スレサイズを取得(取得したサイズの方が小さい時の保険)
var aSize = oBody.replace(/<font color=red face="Arial"><b>(\d+) KB<\/b><\/font>/mg, "$1");
var getSize = parseInt(aSize, 10) * 1024;

で、差分取得処理のサイズ判定を以下の様にする。

if (sbyte > bodylength){



if ((sbyte > bodylength) && (sbyte > getSize)){

以上です。

256名無しさん:2015/04/11(土) 16:30:11
>>255
ちゃんとスレサイズ取れてなかったので訂正

// スレサイズを取得(取得したサイズの方が小さい時の保険)
var aSize = oBody.replace(/<font color=red face="Arial"><b>(\d+) KB<\/b><\/font>/mg, "$1");
var getSize = parseInt(aSize, 10) * 1024;



// スレサイズを取得(取得したサイズの方が小さい時の保険)
var aSplitBody = oBody.split('<font color=red face="Arial"><b>');
var aSize = aSplitBody[1].split('\n')[0].replace(/(\d+) KB<\/b><\/font>/, '$1');
var getSize = parseInt(aSize, 10) * 1024;

257名無しさん:2015/04/11(土) 20:56:12
動作確認を行った環境は
Windows 7 Professional (x64) Build 7601
.NET Framework 4.5.51209(← regeditのVersion)
(でもFiddlerで確認すると、.NET 4.0.30319.34209と表示)
Fiddler v4.5.0.0
htmltodatByFiddler 2.02

作者さんありがとう

258名無しさん:2015/04/17(金) 21:26:42
htmltodatByFiddler 2.02 ありがたく使わせてもらっています
先日2chのスレでftp://が書き込まれたスレが取得できない状態になってしまいました
何らかの形で対応できないものでしょうか

259名無しさん:2015/04/17(金) 23:32:31
>>258
Fiddlerと2chの間にはCloudFlareがあってだな
2chのread.cgiのバグを修正しない限りCloudFlareが誤動作するんだ
これは端末のツールでどうこう出来る問題じゃないんだよ

260 ◆/vmukiyuzw:2015/04/17(金) 23:51:11
>>259さん、フォローありがとうございます。

>>258さん
一応状況は把握していて、何か逃げ道はないかと考えていたのですが
htmlを取得して変換するという仕組み上、そこでエラーになる状況であれば
完全に回避することは難しいと考えます。
(どのレスにftp://が書かれてるかは読んでみないと分かりませんしね)
現状ではAPI対応のプロキシもいろいろあるようなんで
そちらをお使いいただいたほうがよろしいかと。

しかし、2ch.net側としても
read.cgi経由(htmlプロキシだけでなく汎用のwebブラウザでも)で
読めない状況はまずいと思われるので
そのうち対応されるだろうと期待して様子見してるのですが。

261名無しさん:2015/04/17(金) 23:55:59
横からですが、
そのうち、netに書き込まれた全てのftp://のレスがあぼんされるんじゃなかろうか

262名無しさん:2015/04/19(日) 21:56:19
多分CloudFlare側の対応で、read.cgi経由でftp://が表示出来るようになったよ。

263名無しさん:2015/04/19(日) 21:57:58
おお、本当だ

264 ◆/vmukiyuzw:2015/04/19(日) 22:20:59
>>262さん
CloudFlare側の対応というより、read.cgiの修正(というか多分バージョンダウン)で直ったんだと思います。
汎用ブラウザでスレを見ると、書き込みのところの「お絵かきLOAD」のボタンがなくなってますので
・お絵かき機能を追加するバージョンアップのときにバグを仕込んでしまった
・問題が発生していない元のバージョンに戻した
てところではないかと。
ただ、MANGO板を含むmaguro鯖ではまだエラー出るようですね。
まあちょっと特殊な鯖みたいなんであまり気にすることはないかな。

http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/884
の結果を受けて、Fiddlerのスクリプトにびんたんからの取得を検討していたところだったんですが、
とりあえず無駄な作業になっちゃう前に何とかなってよかった。

265名無しさん:2015/04/20(月) 01:50:53
>>264
read.cgiの対処なら、↓の表記が全く変わらないのも何だかなって感じだね。
バグってたときと同じver.&日付だし。

read.cgi ver 05.02.02 2014/06/23 Mango Mang&uuml;&eacute; ★

266名無しさん:2015/05/28(木) 00:24:43
こういうのってhtmltodatByFiddler2.02で大丈夫なんですか?


730 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/27(水) 15:13:18.45 ID:4WQWcUci0
「提督業も忙しい!」にセキュリティ問題、警察庁も注意喚起
http://www.itmedia.co.jp/enterprise/articles/1505/27/news061.html
[FiddlerCore] Startup() のオプションの話
http://www.cat-ears.net/?p=39957

専用ブラウザを助けるプロクシ作らね?10串目 [転載禁止]©2ch.net
http://anago.2ch.net/test/read.cgi/software/1428850227/730
http://anago.2ch.net/test/read.cgi/software/1428850227/737
http://anago.2ch.net/test/read.cgi/software/1428850227/743

267 ◆/vmukiyuzw:2015/05/28(木) 00:54:34
>>266さん
FIddlerCore.dllを使ったアプリでは、デフォルトでは
外部からのプロキシ接続を受け付ける設定になってて
このセキュリティ問題になってるようですね。
Fiddler.exeのデフォルトでは
Options - Connections - Allow remote computers to connect
がオフになってるので、まあそれを信用するなら大丈夫なんじゃないでしょうか。
そもそもルータ等でいらんポートを塞いでれば問題ない気もしますが。

268 ◆/vmukiyuzw:2015/05/28(木) 21:16:01
ちょっと説明が雑だったかもしれないので補足。

FiddlerCoreっていうのは、Fiddlerの機能からUIの部分を取っ払って
プロキシサーバ機能のみを提供するもので、
プログラマがアプリを作るのにプロキシ機能を使いたい、てときに利用できるものです。
(自分で1からプロキシ機能作るのは作るのは大変なので)

で、FiddlerそのものとFiddlerCoreには「外部からのプロキシ接続を受け付けるか否か」
のオプションがあるんですが、これが(デフォルト状態では)
 Fiddlerはオフ、FiddlerCoreはオン
なようです。
FiddlerCoreのほうのオプションはプログラマが適切に設定しなければなりませんが
Fiddlerのオプションはユーザが操作でき、かつ、特殊な目的でもなければ
わざわざオンにする人もいないと思われるので
特に問題はないのではないかと思います。

269名無しさん:2015/05/29(金) 02:45:48
>>267-268
おお、問題ないのですね
ありがとうございました

270名無しさん:2015/09/03(木) 12:34:39
一部の鯖でエラー出るread.cgi復活してるみたいね

271名無しさん:2015/09/03(木) 20:02:16
あ、そういうことなん?
何か数日前くらいから読み込めないスレがちらほら出始めたんだよね

272名無しさん:2015/11/13(金) 23:40:01
potato.2ch.netのread.cgiが吐き出す出力は構造が大きく変わった

273名無しさん:2015/11/14(土) 10:16:01
>>272
http://anago.2ch.net/test/read.cgi/software/1437650830/796
ここのレスが修正のヒントになるよ

274 ◆/vmukiyuzw:2015/11/15(日) 06:50:49
htmltodatByFiddlerを更新しました。(ver 2.03)
 ・2ch側で特定のサーバでread.cgiの仕様が変更されHTMLの形式が変わったため
  それに対応。

変更されたread.cgiに対応した正規表現はさほど難しくなかったのですが
当面(いつまで?)新旧のread.cgiが共存すると思われるため、
どっちのcgiにも対応できるにはどうするかちょっと悩みました。

また、今回もdat変換処理に修正が入っているため、
前のバージョンを使って取得済みのログを更新しようとするとログ破損状態に
なってしまう可能性があります。申し訳ないですが再取得してください。

それと、ver 1.xx系列を合わせて保守するのはちょっとしんどいなと思えてきたので
今後はver 2xx系列だけでいかせていただけないかと思います。

275名無しさん:2015/11/15(日) 08:33:12
>>274
お絵描きのimgタグ除去は、新cgi関係なく共通なんだけど。

276 ◆/vmukiyuzw:2015/11/15(日) 22:50:30
>>275
ご指摘ありがとうございます。修正しました。(ver 2.04)
 ・お絵かき機能のimgタグの除去処理の場所を修正

277名無しさん:2015/11/16(月) 01:59:29
>>276

助かったよ、ありがとう!

278名無しさん:2015/11/16(月) 12:38:12
>>276
今のところ順調に動いてます
ありがとう

279名無しさん:2015/11/17(火) 13:44:42
こっちの問題じゃないんですが
read.cgi ver 06.0.0 には ttp: から始まるリンクに対しておかしなアンカーを生成するバグがある模様
真正の dat とバイト数が大幅に合わなくなる原因になるので一応書いておきます

280279:2015/11/19(木) 09:01:16
jump.2ch.net を呼ぶようになったので特別な対策は要らなくなりました
read.cgi が安定するにはしばらく時間がかかりそう

281名無しさん:2015/11/19(木) 23:47:05
>>244が再発してますね

282 ◆/vmukiyuzw:2015/11/20(金) 22:56:43
>>281さん
ご指摘ありがとうございます。修正しました。(ver 2.05)
 ・「datが存在しません」のレスポンスが返ってきたときの判定を修正

read.cgi 06系では「datが存在しません」の場合に
どういうレスポンスが返るのかよくわからなかったので
判定条件を適当に修正しちゃってバグを仕込んでしまいました。
とりあえず当面のread.cgi 06系の吐くHTMLでは
元の判定条件で大丈夫だと確認しましたので修正(というか元に戻す)しました。
>>243-247あたりも参照)

283名無しさん:2015/11/20(金) 23:48:44
>>282
対応ありがとうございます
バグは直りましたが今度はread.cgi 06が404になってしまい読めなくなっています

284 ◆/vmukiyuzw:2015/11/21(土) 00:30:43
>>283さん
失礼しました。テストが不十分でした。
一応修正したつもりのバージョン。(ver 2.06)

まだまだread.cgi 06系の仕様が読み切れてないので試行錯誤中です

285名無しさん:2015/11/21(土) 00:56:15
>>284
読めるようになりました
どうもありがとうございました!

286名無しさん:2015/11/30(月) 20:05:41
>>284
何か最近読めないページが出てきたな・・・
と思ってたら2.06でいけるようになりました。ありがとう

287名無しさん:2015/12/04(金) 23:33:54
なんか新着レスのとこで「ここ壊れてます」になります。
新スレ取得でもなぜかレスの2が壊れます。
多分、これだと思います。

対処よろしくお願いします。

119 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/12/04(金) 19:14:30.15 ID:q3g2YXGo0
まぐろ鯖のread.cgiで>>1に<br><br><div class="banner">から始まる広告が入った

専用ブラウザを助けるプロクシ作らね?15串目
http://potato.2ch.net/test/read.cgi/software/1448272459/119

288 ◆/vmukiyuzw:2015/12/05(土) 01:09:44
>>287さん
とりあえず修正してみました。(ver 2.07)
今回の対処は広告バナーを除去するようにしただけです。

若干説明したいことがあるのですがもう眠いのと
明日から用事が立て込んでるのでまた改めて。

289名無しさん:2015/12/08(火) 13:05:21
俺環かもですが例のレス内広告、BBSPINKではところどころ改行されててうまく取得できないようです
よく見ればすべてタグで括られてるので

replace(/<br><br>\n(?:<[^>]*?>\n?)*?<dt>/g,"<br><br>\n<dt>")

に変更したところ問題なくなりました
再検証のうえで修正版をお願いします

290名無しさん:2015/12/08(火) 16:39:30
>>288
いつもありがとうございます

>>289
replace(/<div class="banner"[\s\S]*?<\/div><br><br>/,"")

俺はこうしたけど正規表現はあまり詳しくありませぬ

291 ◆/vmukiyuzw:2015/12/08(火) 21:12:46
修正しました。(ver 2.08)

>>289さん、>>290さんご指摘ありがとうございます。
今回は、前バージョンからの修正が少なく互換性の検証が容易だった
>>290さん案を取り入れさせていただきました。

292名無しさん:2015/12/08(火) 21:50:51
>>290
そっちの方がシンプルですね

>>291
修正ありがとうございます


正規表現、俺もようわからん
「.*」も「[\s\S]*」もマッチするのは基本的に同じはずだけど
とりあえずサクラエディタ上でテストしたら「.」、「[\s\S]」と一文字だけを指す場合は前者は改行文字にはマッチしなかった


これ以上はスレチになるので退散

293名無しさん:2015/12/11(金) 09:59:26
新 read.cgi でも広告入るようになった

294名無しさん:2015/12/11(金) 16:43:27
>>293
05用の広告カットの定義を06用定義のところにコピペして

replace(/<div id="banner"[\s\S]*?<\/div><\/div><\/div>/,"")

に変更すればおk

ザックリ大雑把に言えばhtml上ではclassがidになり<br>が</div>になっただけ

295名無しさん:2015/12/11(金) 16:47:24
>>293
すまん294訂正。</div>が1つ多かった

replace(/<div id="banner"[\s\S]*?<\/div><\/div>/,"")

296名無しさん:2015/12/11(金) 17:11:22
>>293
すまん、もう1度修正

replace(/<div id="banner"[\s\S]*?(?:<div class="push"><\/div><\/div>)+/,"")

ザックリしすぎた……orz

297名無しさん:2015/12/11(金) 20:08:38
お絵描き画像のリンクが
 sssp://o.8ch.net/xxxxx.png
じゃ無く
 http://o.8ch.net/xxxxx.png
になってるな。

298297:2015/12/11(金) 20:32:47
あと、差分取得だが、

専ブラによっては差分取得が働かず、必ず全件取得になってしまう。
原因は、GETレスポンスのヘッダ情報に最終更新日時の"Last-Modified"ヘッダが無いから。
よって、GETリクエストのヘッダ情報に差分取得用の"Range"ヘッダが付加されないため、
BeforeResponse()内の差分取得処理がスルーされる。

また、新着無しの304を返す判定条件だが、
 if (sbyte == bodylength) {
だと、sbyte("Range"ヘッダの値)よりbodylength(dat生成後のバイト数)が必ず+1に
なるため、常にイコールにならない。
よって、新着無しの場合、304ではなく差分1バイトの206が返ってきてしまう。

299 ◆/vmukiyuzw:2015/12/11(金) 21:23:25
修正しました。(ver 2.09)

>>294-296さん
フォローありがとうございます。
結果は>>296のものと同じなんですが

replace(/<div id="banner"[\s\S]*?(?=<div class="post")/,"")

のようにしました。

>>296さん
ご指摘ありがとうございます。sssp:になるよう修正しました。

300 ◆/vmukiyuzw:2015/12/11(金) 22:12:09
>>299
> >>296さんご指摘ありがとうございます は
>>297さんの間違いでした。


>>298さん
> 原因は、GETレスポンスのヘッダ情報に最終更新日時の"Last-Modified"ヘッダが無いから。
> よって、GETリクエストのヘッダ情報に差分取得用の"Range"ヘッダが付加されないため、
> BeforeResponse()内の差分取得処理がスルーされる。

うーん、なんか違うような・・・
GETリクエストのRangeヘッダはわざわざ削除してるんですけど。
(htmlベースでは差分取得するのが難しいので全部取得して内部で差分を取る前提)
専ブラから送られたRangeヘッダは削除前にOnBeforeReqest()でoSessionオブジェクトに保存して
OnBeforeResponse()に引き継いでるので差分取得処理でスルーされることはないはずです。

あと、専ブラによっては差分取得時に取得済みのdatサイズの続きではなく
あえて-1をRangeリクエストするものがあります。
(返ってきたデータの先頭が改行でなければ破損ログとみなす判定のため)
私の知る限りではかちゅ〜しゃ、V2C、ギコナビ等がこの方式を取っていたと思います。
これらのブラウザでは新着レスがなくても304ではなく206が返るのが正常なレスポンスです。

お使いの専ブラではなにか不都合が出てるのでしょうか?
できたら専ブラの種類を教えていただきたく。

301298:2015/12/11(金) 23:13:04
>>300
使ってる専ブラは「禁断の壷」というWebベースのものです。

「GETリクエストに"Range"ヘッダを付加しない」のは専ブラ側の方です。
よって、OnBeforeReqest()での"Range"ヘッダ削除処理自体が行われません。
なので、必ずステータス=200で全件取得となってしまいます。

あと、304の件ですが、他の専ブラの仕様でそうなっているのは了解しました。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板