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

テストその2

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

129 ◆/vmukiyuzw:2012/11/16(金) 00:36:40
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/828

お疲れ様です。
なかなかいい感じですが結構な確率で誤動作しますね。
sendkeys の宿命かもしれませんが・・

> ・htmltodatでそれぞれのミラー用のを一発で選択取得出来るようになったらなー

バッチコマンド化計画はその辺までパラメータで指定できることを
目論んでたんですけどね。それができたら上で書いたsendkeysとかも
使う必要なくなりますし。
あと保存ファイル名とかもパラメータ化できたら後処理で保存とかやる必要も
なくなるわけです。

最近V2Cとかもたまに使ってるんですが、V2Cにもgetlogと同等の
スクリプトが使われてて、「ログ速は読めないの?」て話題は時折出るので
やっぱりやらないといけないかなーとあらためて思う今日この頃です。

# ちなみにV2C仕様のgetdat.jsスクリプトでは
# ファイルではなくdatの内容自体を返すように作られています
# こんなのにはどう対処したらいいんだろう?一旦テンポラリファイルに保存して
# 読み返すしかないのかな

130 ◆/vmukiyuzw:2012/11/19(月) 23:21:57
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/831

> それにしても、何行にも及ぶ前処理を組み込む仕様をどうしたもんでしょう?

私はJscriptにあんまり明るいわけではないのでわからないですが
663さんのスキルを持ってすれば「ログ速.bcr」をパースして配列に突っ込んで・・・
くらいのことは楽勝そうな気がするんですが・・・
(他のパラメタについてもそうですね)

ちなみに適当な過去ログでやってみましたが
「未変換行:〜」が延々出て変換にはたどりつけないようですね。
おそらく、前処理をやってないので投稿日・ID周りの不要なものが取り除けてないので
(正規表現はそれを取り除いた前提で書いてるので)マッチしなくなっているようです。

ともあれ、いいものになりそうな雰囲気がするので、頑張っていただきたいです。

131 ◆/vmukiyuzw:2012/11/23(金) 00:24:06
●大雑把な仕様

起動時の引数は最大3個取る
1つ目の引数はURL これが指定された場合HTML取得までは自動で行う
2つ目の引数はパラメータファイル名(パラメータファイルの仕様は後述)
 これが指定された場合「取得即変換」がONになり変換までは行う
3つ目の引数は出力ファイル名
 これが指定された場合変換結果をそこに出力しhtmltodatは終了する

●パラメータファイルの仕様

例えば
前処理=ログ速
のような形式で各項目に埋める選択項目を指定して列挙する
ただ、

前処理
なんちゃらかんちゃら
・・・

みたいに選択項目でなく直接正規表現等の内容を記述する形式も
できれば受け入れるようにしたい(サポートスレではそういう形式で書くことが多いから)


久しぶりに開発用のPCを起動してみるとトラブル続出でプログラム触れるようになるまでに
えらく難儀しました。
(というか現在常用のPCに開発環境を移してないだけなんですがこれはこれでなかなか面倒で)
このPCが本格的に壊れてしまうともうメンテできないかも・・・
基本的な仕様は難しくないと思うので誰か別の言語で書き直してくれないかしら

132 ◆/vmukiyuzw:2012/11/25(日) 01:57:39
バッチコマンド化計画で、パラメータファイルやregexps.txtをパースするのに
例によって正規表現でぱぱっと片付けようとしたんですがどうもうまくいかない。
デバッグしてて気づいたんですが、たまたまテストしてた例が

正規表現=したらば(jbbs)過去ログ

なんてものだったのですね。そう、「したらば(jbbs)過去ログ」でregexpa.txtを
検索しようとしたため、jbbsの前後の括弧が正規表現で意味を持ってしまうので
検索にヒットしない結果になってしまったわけです。
事前に括弧をエスケープしないといけないのか?いやそんなことしだしたら
エスケープしないといけないものは他にもいろいろあるよなあ・・・

結局地道に文字列操作関数使って処理することにしました(まあそれでも
大して難しくはなかったんですが)。
しかし思ったのはこういう問題って他でも出るような。SQLインジェクション
みたいな?(ちょっと違うか)
皆さんどうしておられるんでしょう。

133 ◆/vmukiyuzw:2012/11/25(日) 20:03:36
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/836
> dat化保存終了のタイミングがわからない事にはどうにもならないです。

・3つめの引数は出力datファイル名、これが指定された場合、変換結果をそこに出力し
 htmltodatは終了します。

と言う仕様にしたのはもちろん意味があって、
htmltodatを呼び出した側で終了を待機するようにすればよいと思ったからです。
(非同期でなく同期で起動すると言うことですね)

言語によりやり方は色々ですが大抵手段は用意されていると思うのですが。
ぐぐったらこんなのがありました。
http://d.aoikujira.com/blog/index.php?JScript%E3%81%A7%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E5%AE%9F%E8%A1%8C

134 ◆/vmukiyuzw:2012/11/28(水) 01:26:53
バージョン番号なんて大して誰も気にしてないだろうと思うけど
0.8.19はかなりの変更だったんで0.9.0にしとけばよかったかな。

135 ◆/vmukiyuzw:2012/12/01(土) 22:13:31
とりあえず以前からやりたかった
・バッチコマンド化
・文字コード変換をもう少しましに
・bregonigの採用
あたりが片付いてちょっと一段落ですかね〜

あと前からやりたいと思ってたのが、現在パラメータファイルで指定できる内容の
セーブ・ロード機能なんですが、もともとの動機が
「htmltodatがfatal errorで落ちた時に落ちる前の内容を保存しておいて復帰させたい」
というかなりネガティブなものなので、bregonig採用で落ちることが少なくなるだろうと
思われる現状ではあんまり必要ないですかね。
(ほぼデバッグ用途向けの機能ですし)

まあ気が向けばそのうち。

136 ◆/vmukiyuzw:2012/12/02(日) 20:56:54
readmeの更新履歴をちょっと見返してたんですが、初版が2002/11/03なので
いつのまにか10周年越えてたんです。
10年前は何してただろう、この10年間で何してきただろう、と考えてみると
ほとんど何もしていない気がしてきてちょっと情けなくもある今日この頃です。

137 ◆/vmukiyuzw:2012/12/07(金) 21:10:34
http://yy61.60.kg/test/read.cgi/v2cj/1304861674/761-762
うーん・・・見なかったことにしよう

138 ◆/vmukiyuzw:2012/12/14(金) 21:59:36
たまたま見つけてしまったんですが。
ttp://d.hatena.ne.jp/lightcyan/20120711/1341976920

htmltodatはもともとそんな感じのスクリプトでやってたんです。
で正規表現部分は選択できるようにすれば色んなサイトで
汎用的に使えるじゃん、て感じで始めたんです。

> メール欄が無いときに$2に空文字列いれる事ができれば$3以降がずれなくて、場合わけしなくてもいけたのですが、やり方わかりませんでしたorz

perlではそうだったかな?bregexpだと別にずれることはないんで
そんなもんだろうと何気なく使ってましたけど。
・・・と思いつつ手元のperlで調べてみると、単に正規表現間違ってるだけでした^^;
# (?:<A HREF="mailto:(.+?)">)? ←この?がないのでまずい。あともう一箇所も

> あとみみずんのhtmlで書き込みの途中で改行(<br>でなくて\n)が入ってる事があって、その場合にはその書き込みはdatに出力されません。htmlの方を編集して改行をなくしたほうが早いと思って何もしませんでしたw

htmltodatでは途中に\nや\rがあっても基本意識しないでいいように
作ってます。。。いろんなサイトに適用できることを考えると自然に
そうならざるを得ませんでした。

こう見ていくと伊達に長いことやってるわけじゃなく細かいノウハウが
いつの間にか蓄積されてるかもしれませんね。

139 ◆/vmukiyuzw:2012/12/18(火) 21:55:17
http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/17

お疲れ様です。

# http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/837
# は今回は反映されなかったのですね。これは良いなと思ってたんですが

> mukiyuさんへの要望ですが
> 今後htmltodatサポート板のほうで新しいミラーサイトのdat化等の問い合わせがあった場合は
> URLの変換の表記も添えて頂ければ有難いです
> 例えばログ速の場合
>
> URLの変換:
> s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#
>
> のように。

それは全然構わないですが、場合によっては混乱を招く可能性がありますね。
(使う側がURLが変換前か変換後か意識する必要がある?)
まあ上のログ速のようなケースだとURL変換後のURLだとマッチしないので特に問題は出ないだろうし、
同様の理由でほとんどのサイトで問題ないかもしれませんが。
出たら出たでそのとき考えますか。

140 ◆/vmukiyuzw:2012/12/20(木) 01:55:21
これは何だろう・・・気づかなかった
ttp://www2.atchs.jp/yuzuha/

141 ◆/vmukiyuzw:2012/12/21(金) 23:29:13
http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/18

お疲れ様です。

> 気力が沸いたらやってみるです。
> といってもローカルdatとdat化dat(?)の比較くらいしか出来ないですが。

私がいいなと思ったのは
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/837
で既にできていた、htmltodatの終了待ちをしてdat化完了後自動で開けるようになる部分だったんですけどね。
それがあるかないかで使い勝手自体変わっちゃいますので。
# 個人的見解ではローカルdatとの比較云々はその先でもいいのではないかと・・・
# 「みみずんでは全レス取得できないからログ速で読みたい」って人がまず使いたいんじゃないかと
# 勝手に(すみません)想像するので

> htmltodatへの要望なんですが
> prmファイルを作成する機能もあったらありがたいなあと思うです。
> ヘッダ/URL変換/正規表現/前処理etc/変換結果式/後処理
> ・・・をひとまとめにしてprm化するボタンとかあったらな

>>135でちょっと書いたんですが

> あと前からやりたいと思ってたのが、現在パラメータファイルで指定できる内容の
> セーブ・ロード機能

になりますかね。
セーブ機能は私と663さんくらいしか使わないかもしれませんが(笑)、ロード機能は
現状結構煩雑なhtmltodatの各種パラメータ指定をある程度簡略化できる方法になるかなと
思っているので、まとめてそのうちやります。まあ年が明けてからかな。

142 ◆/vmukiyuzw:2012/12/21(金) 23:58:37
セーブ・ロード機能なんて言い方がDOS時代ぽくて年寄り臭いかな?^^;
でもインポート・エクスポートとか言うとデータ自体の出し入れの感じがして
設定内容の出し入れにはピンとこなかったんです。

143 ◆/vmukiyuzw:2012/12/22(土) 21:57:24
http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/20

お疲れ様です。
dat化完了後自動で開けるようになっているのを確認しました。


> 変換結果式のところをどこかからそのまま下のようにコピペで
> -----------------
> 変換結果式: 
> $2<>$3<>$4<>$5<>
> (↑メール欄逆転)
> -----------------
> とやると、何だかdat化したものが変になりますね。

う、痛いとこを^^;
前処理等複数行受け付ける必要のあるところと、変換結果式みたいに一行で済むところを
今のとこ同じルーチンで処理してるので、変換結果式に複数行の指定があると
変なことになっちゃうんです。
これは今後サポートスレに書くときにはコピペで変にならないよう気をつけようと思ってたんですが、
そんなことを意識してなかった過去のレスにまで適用されるとちょっとつらい・・・
当面、「(↑メール欄逆転)」の行は手動で削って対応お願いします。
# 多分今のとこ663さんしか使ってないと思うので

> あと、htmltodatのほうで「URLの変換」の項目
> ctrl+Aで全選択出来れば嬉しいです(私が)

次に一緒に修正します。


# 最近ではviewスレ http://toro.2ch.net/test/read.cgi/win/1353154872/305
# みたいな書き込みもあったので、あれば使いたいというニーズはあるのでは。。
# ひな形的なものだけ作っておいてあとは各ブラウザユーザ(のスキルある人)が
# 引き取ってくれればいいんでしょうけどね

144 ◆/vmukiyuzw:2012/12/29(土) 23:19:30
http://yy61.60.kg/test/read.cgi/v2cj/1304861674/778
最近これを弄って遊んでました。

まず、ログ速からのhtml取得自体がうまくいかない。
よくわからなくてhttpレベルで調べてみると、自分の環境でだけかもしれませんが
なんか301リダイレクトがループしてエラーになってる模様。
とりあえず取得先をリダイレクト先に直接いくように変更したら取得できるようになりました。
で、実際取得できた内容は・・・ほぼうまくいってるようなのですが
一部アンカータグが取り除けず表示が変になる部分があったりしました。
htmltodatでの前処理にあたる部分が一部うまくいってないようなのですが
ちょっと弄っても直らなかったので保留。

それから、htmltodatを使った変換も組み込んでみました。
ざっとスクリプトの仕様を調べると、外部ファイルを実行するのに同期で起動する(終了待ちする)
方法がなさそうだったんでちょっと難しいかなと思ったんですが、wikiの開発者向け情報のとこを見ると
javaのパッケージを動的にインポートしてそのクラスを使えるみたいなことが書いてあったんで
試行錯誤でやってみるとなんかできてしまいました。

うーむ、面白かったし勉強にもなった。

145 ◆/vmukiyuzw:2012/12/31(月) 09:39:22
大掃除も終わってのんびり年明けを迎えようと思ってたら
なんかやってくれちゃってるじゃないですか。
http://yy61.60.kg/test/read.cgi/v2cj/1304861674/800-801

ちょっと使ってみますかね

146 ◆/vmukiyuzw:2013/01/06(日) 12:36:10
>>145
使ってみました。

まず、みみずんとかバイパスしてログ速に取りに行くように、20〜21行目のコメントを外し、
16〜19行目をコメントアウトしました。
これでhtmltodatが動くようになるはずなのですが、起動はするものの133行目での終了待ちが
できておらず終了する前に次へ進んじゃってnot foundになってしまう模様。
よくわからないですが433行目で起動しているtasklistコマンドはうちのXP環境では
そんなコマンドないよと言われてしまうのでそれが原因かなあ?

v2c.execを使わず(429行目以降でやってるように)java.lang.Runtimeのexec()を使って
waitFor()で終了待ちするようにするとうまく動くようになりました。

あと、デバッグモード(582行目のコメントを外す)も試してみたのですが
590行目の htmltodatDir が not defined のエラーになっちゃいます。
これもよくわからないのですが12行目(8行目(function() { ・・・ の中)で宣言されてるので
スコープから外れてるような?
宣言をスクリプト先頭に移すと動くようになりました。

しかし、このスクリプトで感心したのが、win環境以外で動かすためのCompatibleModeの部分。
まだちゃんと解読できたわけではないですが、htmltodatの動作をシミュレートしようとしていて
なかなか胸熱です。
もうちょっと弄って遊んでみよう。

147 ◆/vmukiyuzw:2013/01/12(土) 22:04:29
開発用PC(ほぼ死にかけ)から常用PCへ開発環境の移行をやってました。
(このへん ttp://www.geocities.jp/openjanemania/compile.htm を参考に)
# バージョン0.10.2は新環境での初リリースなんで、もしかしたら不具合出るかも

Delphiのインストールだけなら(インストーラが残ってたので)なんてことはないのですが
使ってるコンポーネントのインストールやらIndyのインストールやら
もともと基本が分かってない上で徒手空拳でやってた部分はほぼ記憶の彼方なので
結構難儀しました。まあ仕方ないかな

しかし思ったのが、例えばソース公開したとしてもDelphi6Personalなんて開発環境は
現在では入手すら困難なわけで、
時間があればC#あたりに移植したいな。(JavaはGUI作るのが面倒そうなので)
# もしくは誰かもっといいのを作ってくれないかな

148 ◆/vmukiyuzw:2013/01/18(金) 20:41:45
すごい前の話なんですが・・・
>>100-102 で言ってたJaneWlitaを今さらながら導入しました。

# 外部コマンドPart10
# http://mattari.plusvip.jp/test/read.cgi/jane2ch/1274781645/821-
# で見かけたことがきっかけ

これはなかなかいいものですね。
しかもそれを実装してる仕組みも興味深い。

# C#やろうとか言いながら最近JavaScript関連ばっか追いかけてる気がする

149 ◆/vmukiyuzw:2013/01/29(火) 00:32:50
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/754
> マッチさせたかったのは&nbsp(実際には半角)だったのですが、
> 掲示板に書き込む時にただの半角スペースに変換されちゃうのを忘れてました。
> 正規表現:
> m#(?:</h1>|\t)(\d+):?.nbsp;:<span class="postname">(.*?)</span>:()(.*?)<br />\s*<(?:h2|p) class="resbody">(.*?)(?:</h2>|</p>)#mik

「.nbsp;」とした部分が「ちょっとどうなの?」て感じがしなくもないですが^^;

&amp;を(半角にして)使って &nbsp; とする手もあったのですが
「prmファイル内容」欄とこの掲示板の書き込み内容の間で
どっちからどっちへも単純にコピペできて使えるようにしようと考えると
とりあえずこういう表現がいいかなと考えました。
まあ問題があればそのとき考えましょう。

150 ◆/vmukiyuzw:2013/04/01(月) 22:40:14
まちBBSで投稿日に2013/03/32の表記が出てるみたいですね。
バグだったらしゃれにならないしジョークだったら数年前の2chそのままで面白くもないし
一体なんなんでしょうね。
今更相手する気はないですが前に悩まされたのを思い出したので不愉快です。

151 ◆/vmukiyuzw:2013/04/06(土) 23:39:26
テキストエディタで、正規表現でインクリメンタルサーチができるものがあれば
htmltodatでの正規表現調べるのに随分捗るなあと思って探してたんですが
灯台下暗し?昔から愛用してた秀丸エディタに機能があるのを最近知りました。
(「インクリメンタルサーチ」という機能名じゃなかったので気づかなかった)
他にもできるエディタはあるかもしれないけど。

で、ちょっと思ってるのが、htmltodatのHTMLソース欄とか本当はテキストエディタ的に
検索とかいろいろ操作できたほうが便利だと思うのですが、現状の自分のスキルでは
とてもそんな実装は出来そうにない。現状はテキストエディタにコピペして何とかやってる状況です。
なら、もうそれしかできないのを受け入れてしまって、HTMLソース欄を直接任意のテキストエディタで
開けるようにしてしまったらどうだろう。

・・・ていうのが次のバージョンアッププランです。
まあ正直、これをやったところでうれしいのは自分だけかもしれないですが^^;

152 ◆/vmukiyuzw:2013/04/14(日) 01:13:37
http://yy61.60.kg/test/read.cgi/v2cj/1365215326/7-11
> 暇つぶし2ch.prmから取得すると
> http://engawa.2ch.net/test/read.cgi/isp/1360402194/
> のようなレス内のリンクが
> engawa.2ch.net/test/read.cgi/isp/1360402194/
> となります。

これって多分
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/683
の後半で書いた問題なんだと思います。
「暇つぶし2ch.prm」と書かれているものがどこから取得されたものかわからないですが
それに記述が含まれていないんではないかと。
663さん(mirrorhenkanさん)が書かれた暇つぶし2ch.prmには記述されてるようでしたが。

153 ◆/vmukiyuzw:2013/05/28(火) 23:51:04
したらばでは板に書き込みがあるとメールが来るように設定できるんです。
書き込み多い板だとうっとおしいでしょうが、うちの板くらいの書き込み頻度だと
ちょうどいい感じで来るし問題発生を見逃すこともないので設定してたんです。

でも http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/768
の書き込みでメールが来なかったことに気づいて、おや?と思ってちょっと調べたら
送信のメールアドレスが変わったみたいです。それがメール受信のドメイン拒否に
引っかかってしまったのかな?許可するようにしたらメール来るようになりました。
もし同じ問題がある方は seesaa.jp を許可するようにすればいいと思われます。

154 ◆/vmukiyuzw:2013/06/11(火) 00:45:09
ログ速とはどこまでも戦っていかなくてはいけないのかな・・・^^;

155 ◆/vmukiyuzw:2013/06/21(金) 23:16:17
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/776

> # ログ速内へのURLリンクの強引な逆変換・・・Jane系でしか使えないと思われるのでとりあえずコメントアウト
> #s#http://www\.logsoku\.com/r/(.*?)/(\d+)/#http://dummy.2ch.net/test/read.cgi/$1/$2/#ig

Jane系では2chのスレらしきURLの場合、そのURLから直接ではなく
Jane2ch.brd(板一覧のファイル)を経由してそこに書かれてるサーバ名に
アクセスしてるようで、つまり正しいサーバ名でなくてもほぼ問題ない?
との仮説の基に、適当なサーバ名に書き換えようとしてます。
(どのみち本来のサーバ名は失われてるのだから)

Jane系をお使いで、かつそんないい加減なdatでも使えれば問題ない、という方は
コメントアウトを外して(行頭の#を削除して)使ってみてください。

156 ◆/vmukiyuzw:2013/06/27(木) 23:45:48
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/777
で書いたとおりログ速側で対応してくださったようなので
>>155 の書き込みは取り消します。ご容赦ください

最近の2chでは過去ログへのURLリンクを書き込む際に
2ch内でのURLではなくログ速やみみずんのURLを書き込むケースが
ときどき見られるようです。
そういうのまで変換してしまったらまずいかなと思われますので。

157 ◆/vmukiyuzw:2013/06/28(金) 23:07:12
ぐぐってたらたまたまこんなのを見つけたんですが。
ttp://nvmzaq.blog.fc2.com/blog-entry-119.html

ログ速さんがやったことは「改竄」であり「原則から逸脱したもの」とみなす向きが
あるようですね。これが原因で元に戻されたのですかね。
個人的には「htmltodatで変換するのに厄介だから」くらいにしか考えてなかったですが
転載するのに内容を改竄するのは確かに問題あるかもしれないですね。

158 ◆/vmukiyuzw:2013/08/11(日) 00:52:29
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/784

もうじき管理が完全に seesaa に移ってURLも変更されるだろうから
それまで修正は待ったほうがよかったのかもしれませんが・・・
それはそれでいろいろ面倒な作業がいろいろ必要だろうから
先に済ませられることは済ませておこうかなてな感じです。

まあ、いろんなところに貼られてるリンクが多分意味なくなっちゃう
だろうことが悲しいですねえ。
(前にinfoseekがなくなったときもかなり悲しかったですが)

159 ◆/vmukiyuzw:2013/08/27(火) 22:34:12
2chがなかなか大変なことになってるようで・・・
多分今はまだ何もしないほうが良いのでしょうね
というわけで静観です。。

160 ◆/vmukiyuzw:2013/08/27(火) 22:44:56
火事場泥棒じゃないけどこういうのが商売になったりするのかもですね
そういうのができない自分はやっぱ商才とかないんだな

161 ◆/vmukiyuzw:2013/10/05(土) 19:10:53
http://qb5.2ch.net/test/read.cgi/operate/1380281358/562,565

こういう口出しするのはどうかと自分でも思うんですが
http://mirrorhenkan.g.ribbon.to/jane/htmltodat-convert/
は、もう公開やめたほうがいいんじゃないですかね
http://mirrorhenkan.g.ribbon.to/jane/htmltodat-convert2/
のほうがはるかに良いと思われますし

162 ◆/vmukiyuzw:2013/10/06(日) 19:07:39
http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/46

勢いでなんか書いてしまいすみません
相変わらずお忙しそうなのでまた気の向いたときにでも

163 ◆/vmukiyuzw:2013/10/28(月) 20:37:03
http://anago.2ch.net/test/read.cgi/software/1348064199/871-

私は時々htmltodatでまとめサイトのコメントをdat化して読んでますが
経験的にはやっぱその都度正規表現考えないといけなくて
汎用化は難しい気がしますね。

まあdat化そのものは経験があれば大して難しくは無いと思うのですが
面倒なのは、コメント中のレスアンカーに統一された形式が無い事。
2ch互換の掲示板なら>>1みたいにするところを※1だとか米1だとか
しかも同じhtmlの中でも統一されてなかったりするのが厄介だなと
思ったことがありました。

164 ◆/vmukiyuzw:2013/11/07(木) 21:45:19
最近、「詳説 正規表現」という本を入手しました。
正規表現のバイブルとして有名な本なので前から読んでみたかったものです。
(amazonで中古本がやたら安かったのでつい買ってしまった^^;)

で読んでみて、非常に勉強になりました。
今まで正規表現には結構詳しいつもりでいたのが全然そうでないのを思い知らされました。
今は
http://perldoc.jp/docs/perl/5.18.1/perlretut.pod
http://homepage3.nifty.com/k-takata/mysoft/bregonig.html
など見ながら何ができるか再度勉強してます。実際に動かしてみるのが一番身に付く気がします。

で、htmltodatをバージョンアップして、覚えた事の一部を反映したい気持ちが湧いてきました。
(また誰得のひとりよがりな更新になっちゃう可能性が高いですが)

165 ◆/vmukiyuzw:2013/11/25(月) 19:37:37
http://jbbs.livedoor.jp/bbs/read.cgi/computer/21256/1164941934/797-800

htmltodatもバッチファイルやスクリプトから呼べるようになったし
いろいろ機能拡張してるんで
これはその辺組み合わせればできるんじゃね?と思ってやってみました。
# 結構イレギュラーな使い方なんでサポートスレでなくこちらで軽く雑談程度に

必要なファイル:
・sorttest.cmd (処理全体を起動するバッチファイル。後述)
・Rちゃんねる.prm (Rちゃんねるをdat変換するためのprmファイル。後述)
・sortN.cmd (datファイルをソートするために使う外部ツール。
 http://www.vector.co.jp/soft/winnt/util/se428840.html からダウンロードしたものを
 解凍すると含まれているものをそのまま利用)
・ソート後処理.prm (ソート後のdatファイルを加工するためのprmファイル。後述)

必要なファイルはとりあえず htmltodat 本体と同じフォルダに置いてください。
(実行もコマンドプロンプトで htmltodat のフォルダに移動してから)

(続く)

166 ◆/vmukiyuzw:2013/11/25(月) 19:40:19
(続き)

まずはバッチファイル、sorttest.cmd 。
コマンドプロンプトから sorttest.cmd URL(←URLは http://・・・の形式で)
で実行します。
まあちょっと弄れば専ブラの外部コマンドとかでも動かせると思います。

@rem -----ここから----------------------------------------------------------------------

echo off
@rem 使い方:コマンドプロンプトで sorttest.cmd URL(←URLは http://・・・の形式で)を入力

@rem 手順1.Rちゃんねるのログをdat変換(行番号付き)
@rem  (0行目に後で使うためスレタイを入れている)
htmltodat.exe %1 Rちゃんねる.prm $temp1.dat

@rem 手順2.行番号でソート
call sortN.cmd < $temp1.dat > $temp2.dat

@rem 手順3.行番号の削除(andスレタイ付与)
@rem  第3パラメータを省略しているので変換処理までしか行わない(ファイル保存は手動でやる)
@rem  ファイル保存後はhtmltodatを手動で必ず終了すること(でないとこのコマンド全体が終了しない)
htmltodat.exe $temp2.dat ソート後処理.prm

@rem 手順4.テンポラリファイルの削除(一応お行儀よく)
del $temp1.dat
del $temp2.dat

167 ◆/vmukiyuzw:2013/11/25(月) 19:44:13
(続き)

次に、Rちゃんねる.prm。


コメント:
# Rちゃんねるのhtmlをdat変換
# ただし、レス番号順に並んでいないため、後でソートするためレス番号を先頭に付加しておく
# (そのため「変換結果式」に$1が入る)
# また、スレタイトルを後で取得するためレス番号0に入れておく

前処理:
# スレタイトルをレス番号0に偽装させるための処理
s`(<title>)([^|]+) \|.*(</title>)`<div id="0"><div class="comment">$2</div>`ik

変換結果式:
$1<>$2<>$3<>$4<>$5<>

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

正規表現: ※拡張形式を使ってみた
m`
(?# レス番号) <div\ id="(\d+)"
(?# 名前・メール欄・投稿日はこのhtmlには存在しないためダミーでマッチさせる) ()()().*?
(?# レス内容) <div\ class="comment">(.*?)</div>
`ikx

168 ◆/vmukiyuzw:2013/11/25(月) 19:45:49
(続き)

次に、ソート後処理.prm。


コメント:
# レス番号付きのdatがソートされた後の処理
# ・レス番号をとっぱらう
# ・レス番号0に偽装していたスレタイをレス番号1の後ろに付与する
# これらは前処理だけで話は済むのでdat変換処理はしない

前処理:
# レス番号の除去
s`(^|\n)\d+<>``ikg
# 0行目に設定されていたスレタイを1行目の後ろに付ける
s`^<><><>(.*?)<>\s*(<><><>.*?<>)`$2$1`ik

dat変換をしない(前処理のみ行う):
true

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

169 ◆/vmukiyuzw:2013/11/25(月) 20:01:40
(続き)

まあやってることはコメント参照してください。

ソートした後、もう一度htmltodatを呼び出して
あたかもhtmltodat一発で変換・並べ替えまでできてるように
見せかけたとこが工夫といえば工夫ですかね〜。

あと、バッチファイルなどさわるのは久々だったんで
sortN.cmdを呼び出すのに、callをつけないと
制御が戻ってこないことに気づくまでしばらく悩みました^^;

170 ◆/vmukiyuzw:2013/11/26(火) 19:10:40
>>167
ちょっと修正
(「URLの変換」の記述が漏れていた、&
dat上の「投稿日」欄が空だとブラウザにより破損ログとみなされてしまうことがわかったので
とりあえず「名前」欄($2)と「投稿日」欄($4)に半角スペースを入れるようにしてみた)


コメント:
# Rちゃんねるのhtmlをdat変換
# ただし、レス番号順に並んでいないため、後でソートするためレス番号を先頭に付加しておく
# (そのため「変換結果式」に$1が入る)
# また、スレタイトルを後で取得するためレス番号0に入れておく

URLの変換:
s`http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*`http://r-2ch.com/t/$2/$3/`

前処理:
# スレタイトルをレス番号0に偽装させるための処理
s`(<title>)([^|]+) \|.*(</title>)`<div id="0"><div class="comment">$2</div>`ik

変換結果式:
$1<>$2 <>$3<>$4 <>$5<>

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

正規表現: ※拡張形式を使ってみた
m`
(?# レス番号) <div\ id="(\d+)"
(?# 名前・メール欄・投稿日はこのhtmlには存在しないためダミーでマッチさせる) ()()().*?
(?# レス内容) <div\ class="comment">(.*?)</div>
`ikx

171 ◆/vmukiyuzw:2013/11/26(火) 19:13:59
>>168
ちょっと修正
>>170の修正を受け、datの形式が多少変わっても汎用的に
対処できるようにしてみた)


コメント:
# レス番号付きのdatがソートされた後の処理
# ・レス番号をとっぱらう
# ・レス番号0に偽装していたスレタイをレス番号1の後ろに付与する
# これらは前処理だけで話は済むのでdat変換処理はしない

前処理:
# レス番号の除去
s`(^|\n)\d+<>``ikg
# 0行目に設定されていたスレタイを1行目の後ろに付ける
s`^.*?<>.*?<>.*?<>(.*?)<>\s(.*?<>.*?<>.*?<>.*?<>)`$2$1`ik

dat変換をしない(前処理のみ行う):
true

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

172 ◆/vmukiyuzw:2013/11/26(火) 23:16:37
さて、これをもう少し発展させれば
以前どこかで話が出ていたいわゆる「まとめサイト」の変換にも
応用できるかもしれません。

まあまとめサイトにもいろいろあるようで、例えば
複数スレを一つにまとめたようなものには
到底対応できないと思いますが。

173 ◆/vmukiyuzw:2013/11/28(木) 05:51:29
http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/49-56
いい感じに出来上がってきましたね。

一点コメントさせていただくなら、
「getdatpath.wsf の結果を手動でコピーしてhtmltodatに貼り付けてdat保存」
という手順になってるようですが、ここは自動化できるのでは。
getdatpath スクリプトの結果をバッチファイル内で変数にセットして
2回目の htmltodat.exe 呼び出し時に第3パラメータで指定する方式にすれば
できるのではと思いました。

ちょっとやり方調べてみました。
wsf側では、処理結果のdat保存ファイル名を WScript.echo(・・・) の形式で
結果を標準出力に吐くように変更すれば
(で、実行を cscript から呼び出すようにすれば)バッチファイル側で受け取れるはずです。

で、バッチファイル側では for コマンドを使えば標準出力を変数にセットできるようです。

for /f %%D in ('cscript getdatpath.wsf %1') do set datpath=%%D

# これはサンプルをほぼコピーしただけで動いちゃったので
# for コマンドのパラメータとか正直まだあんまり理解してないです^^;
# unixのシェルスクリプトだともっとシンプルな記述でできそうですが
# windowsのバッチコマンドだと for コマンドに色々機能が詰まってるようです

これで多分バッチファイル内の変数 datpath にdatの保存ファイル名がセットされるので、
後は手順3.を

htmltodat.exe $temp2.dat ソート後処理.prm %datpath%

としてやれば、datファイル保存の部分までは自動化できると思います。

174 ◆/vmukiyuzw:2013/11/28(木) 05:54:47
http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/55

> それと>>51の正規表現がJaneだとカッコが%28に化けてるのは何とかなんないのかな

もしかしてReplaceStr.txtをお使いではないですか?
以前うちのサポスレでこんなやり取りがありましたが似た様な話に思えます

http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/679-681
(実際にはもう少し前から結構長いやり取りがあるのですが要点と思われるとこのみ)

175 ◆/vmukiyuzw:2013/11/28(木) 21:47:27
http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/57

あんまり自信ないんですけど・・・こんなのどうでしょう

for /f "tokens=* delims=" %%D in ('cscript getdatpath.wsf %1') do set datpath="%%D"

これで途中半角スペースがあるようなパスでも正しく取得できるような。

176 ◆/vmukiyuzw:2013/11/28(木) 22:51:03
あと、最後の

@rem 手順5.Janeで該当スレッドを開く
Jane2ch.exe %1

だとバッチコマンド自体が終了せずプロセスが残ってしまうかも。

start Jane2ch.exe %1

だと非同期起動なのでいいかもしれません

177 ◆/vmukiyuzw:2013/11/29(金) 01:23:50
>>176
いや、起動中のJaneを横から(?)叩いてスレを開かせる場合
叩いた側のJaneは終了するようになってたかな
であれば非同期にしなくても問題ないか

178 ◆/vmukiyuzw:2013/11/29(金) 19:09:10
>>175
なんとなく分かったんですけど、たぶん問題は2段階あって

・forコマンドで途中にスペースを含むパス名をとりだすのに"delims="が必要

・これをhtmltodatの引数にそのまま渡すとスペースがそのままシェル(cmd.exe)に解釈されて
 複数の引数として渡ってしまうので、コマンド変数を""でくくって
 「1つの引数ですよ」とシェルに教えてやる必要がある

>>175 の例では set datpath="%%D" とやってたまたまできたのですが
htmltodat起動方法を

htmltodat.exe $temp2.dat ソート後処理.prm "%datpath%"

とするほうがいい方法のような気がします。

179 ◆/vmukiyuzw:2013/12/02(月) 23:16:58
どうも最近PCの動作がトロくて
どうやらメモリ不足でスワップが多発している模様だったので
メモリ増設することにしました。
(またamazonで安いのをgetした)

しかし、取り付けてみたもののBIOSでは認識されてるようなのに
OSが起動しない。なんでじゃ?

検索してみると「標準実装のメモリと同時には使用できません」とのこと。
結局標準のメモリを外して付け替えることになり、
「増設」とはならず「入れ替え」に終わったのでした・・・
まあそれでも前よりはメモリが増えて若干快適になったような。

180 ◆/vmukiyuzw:2013/12/09(月) 20:44:42
htmltodatの最新版(v0.11.2)は
 ・「変換オプション」-「dat変換をしない(前処理のみ行う)」をONにした場合、
  前処理の結果を「dat変換結果」欄に表示するようにした。
この機能のおかげで、簡易正規表現チェッカーとして使うことが可能なんです。

(「HTMLソース」欄に対象の文字列を入力し
「前処理」欄でテストしたい正規表現を指定し「dat変換をしない」オプションをONにすると
「dat変換結果」欄に前処理の結果が表示される)

エンジンがbregonig.dllでJane系統と同じ(バージョンは若干違うようですが)なので、
NGEx.txtとかReplacestr.txtのチェックに使えたりもします。

そんな中ちょっと気づいたことがあるのですが長くなりそうなので次レスで。

182 ◆/vmukiyuzw:2013/12/09(月) 21:20:01
あーなんか勘違い。取り消します

183 ◆/vmukiyuzw:2013/12/13(金) 21:59:51
ちょっと面白いのを見つけたんですが。

ttp://1st.geocities.jp/neeetest/jane.html

なんか似てませんか(笑)
てか同じようなことをしようとすると似たようなUIになっちゃうのかしら。

それより気になったのが、このソフトで使われてるテキストエディット部分。
どんなコンポーネント使ってるんだ?と思ったらreadmeに書いてくれてました。
どうやらDelphiで作られてるようなのでhtmltodatにも組み込めるかな?
今の(htmlソース欄等の)エディット部分には正直不満があるので
差し替えることができないか検討してみようと思います。

184 ◆/vmukiyuzw:2014/01/11(土) 01:27:03
いろいろやりたいことはあるのですが年末からずっとバタバタしててなかなか捗らないです。
とりあえず、だいぶ前の話なのですが
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/631,632,638-643

これは>>165- の手法でできるんじゃね?と考え、やってみました。

必要なファイル:
・sorttest.cmd → >>166 のものを「Rちゃんねる.prm」の部分だけ「テレビジン.prm」に書き換える。
 もしくは「%2.prm」みたいにしてしまって実行時に与える形にしたほうがいいかも。
 専ブラから外部コマンドで呼び出したいような場合は663(mirrorhenkan)さんの
 http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/50-
 を参考に。
・テレビジン.prm (後述)
・sortN.cmd (>>165で書いたものと同じ)
・ソート後処理.prm (>>171で書いたものと同じ)

(続く)

185 ◆/vmukiyuzw:2014/01/11(土) 01:35:43
(続き)

テレビジン.prm。


コメント:
# テレビジンのhtmlをdat変換
# 後でソートするための処理はRちゃんねる.prmとほぼ同じなのでそちら参照

前処理:
# スレタイトルをレス番号0に偽装させるための処理
s`(<title>)(.+?)\ -\ テレビジン(</title>)`<dt>0<b></b></font>:</dt><dd>$2</dd>`ik
# <br />タグに対応していないブラウザのための処理
s`<br />`<br>`ikg

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

変換結果式:
$1<>$2<>$3<>$4<>$5<>

正規表現:
m`<dt>(?:<a\ name=.*?>)?(\d+).*?<b>(.*?)()</b></font>:(.*?)</dt><dd>(.*?)</dd>`ikx

186 ◆/vmukiyuzw:2014/03/04(火) 23:51:49
XPのサポートが終わるってことで、消費税も上がるぜってことで、
新しいPC(Windows8)買っちゃいました。(めっちゃ安かったので^^;)
いろいろ弄ってる最中です。

意外(でもないか)だったのは、htmltodatもJaneも特に何もしなくても動くんですね。
htmltodatはなぜかprmファイルのウィンドウだけがボタンがはみ出してしまったりしたので
そこだけはちょっと何か対応しないといけないか。。。

187 ◆/vmukiyuzw:2014/04/01(火) 20:55:21
http://anago.2ch.net/test/read.cgi/software/1394109798/771,775,776,778,780

これって多分

http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/799

の事象なんでしょうね。
(ブラウザでは読めるがdatは取れない)
ともあれ役に立ったようで良かった。

188 ◆/vmukiyuzw:2014/04/06(日) 00:29:36
ようやくWindows8.1環境にもろもろの環境を移し終えました。
(買ったときは8だったけどアップデートが来て8.1になった)

しかし前回XP→XPの移行時も結構大変でしたが今回はOSも違うし
なかなか大変でしたね。なかでもやはり開発環境の移行。
次にまた痛い目に合わないよう一つ一つメモしながら作業しました。
そんな感じの中、新環境でコンパイルしたものをリリースしました。
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/800

まあXPのサポートが終わるのもあってその前にXP環境以外で
コンパイルしたバージョンを出しておきたかったというのがちょっとあります。
開発ツールが変わったわけじゃないんで吐かれるバイナリは
基本的には変わらないはずなんですけどね。気持ちの問題。

189 ◆/vmukiyuzw:2014/04/26(土) 22:12:08
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/801
について若干補足。

663さん(mirrorhenkanさん)の
http://mirrorhenkan.g.ribbon.to/jane/htmltodat-convert2/
を使って、
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/799
のprmファイル(readcgi.prmで保存)を使って、JaneStyleの外部コマンドで過去ログを読んでました。
(コマンド登録内容:htmltodat-readcgi=wscript "$BASEPATHhtmltodat-convert2.wsf" "$LINK$URL" "readcgi")

ところが某スレで、1001まであるはずのスレが1000までしか取得できていないのを発見。
調べてみると、スレの1が取得できていないことがわかった。
さらに調べると、コマンドの引数 "$LINK$URL" には、リンク右クリックで呼び出した場合
リンクのURLと呼び出し元のURLがつながった形で渡ることを確認。
つまり、本来呼び出したいURLの後ろに不要なものがくっついた形で呼び出されてしまうのです。
この形式でスレをhtmlで呼び出した場合、スレURL/2- みたいに解釈されるのか(この辺は原因不明)
スレの2以降しか取得できず1が飛ばされる結果になっていた。

GetLogとかもコマンド引数に "$LINK$URL" を取っていたはずだが不具合は起きないんだろうか・・・
と調べてみたら、必ず正規表現でURL引数を読み替えてから呼び出す仕様になっていて、
不要なものがくっついていても問題ないようになっていました。
この不具合を避けるためにはhtmltodatのprmファイルでもURLの変換を入れて
引数から必要な部分だけを自分で拾うようにするべきかと考えました。

190 ◆/vmukiyuzw:2014/05/02(金) 22:40:00
http://anago.2ch.net/test/read.cgi/software/1396868726/741

googleよりもログ速のスレタイ検索のほうが確実じゃないの?と思って

$CHOTTO http://www.logsoku.com/search?q=$TEXTIU

こんなコマンド作ってみたんですが、返ってくるURLリンクが2ch.netのものではなくlogsoku.comのものなので
Janeで読むにはひと工夫必要なんです。

とりあえず、リンクをクリックするとログ速でのスレが既定のブラウザ(うちではFirefox)で開かれるので
Firefoxの右クリでコマンドを実行できるアドオンを入れてみました。
(ログ速で表示されるスレで「2ch元スレ」を右クリしてJane2ch.exeを呼び返す)

しかし一旦Firefoxを経由しないといけないのがいまいちか。スクリプトでlogsoku.comのURLを
うまいこと2ch.netに読み替えるとかできたら使い勝手あるかもだけどやっぱニッチかな?
連休といってもほぼ暇なんで研究してみるけどあまり期待はできない^^;

191 ◆/vmukiyuzw:2014/05/04(日) 05:42:43
http://jbbs.shitaraba.net/bbs/read.cgi/computer/21256/1164941934/810

2回外部コマンドを呼ぶのはやむを得ないと思うんですが
2・3(つまりFirefoxを呼んで返ってくる手間)を何とか省けないかなと思ったのです。
ここをスクリプトで自動化できたら1ステップ減らせるかなと。

ログ速のURLに鯖名が含まれないのを取り返す方法はいくつか考えられたのですが、
ログ速のスレを読み込むとその中に2ch元スレへのリンクが含まれてるので
それを抜き出して利用するのが簡単かなと思いました。
(bbsmenuを経由するようなアプローチだと、過去ログの場合
鯖移転でそのスレが実在してた時点の鯖と違う可能性があると思われる。
これにより鯖違いで過去ログが読めないケースも出ているようなので)

で、一応形になったかもしれないのでUPしておきます。
http://mukiyu.g.ribbon.to/scripts/URLConvertLogsokuTo2ch.wsf

コマンドでの呼び出しはこんな感じで。

wscript $BASEPATHURLConvertLogsokuTo2ch.wsf "$LINK"

基本的には>>190の「ログ速のスレタイ検索」から呼び出す専用です。

あと現行ログ用です。ログ速のスレタイ検索では現行ログかdat落ちかは
識別できるようになってますが、もしdat落ちしてた場合はhtmltodatで
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/801
(補足>>189)など使っていただければ。

ところで、ttsearchが復活したという話をあちこちで見かけますね。
であればログ速でのスレタイ検索なんてやはり誰も使うことはないのか・・・
過去ログも含めて検索できるといういい点があると思うんですけどねー

192 ◆/vmukiyuzw:2014/06/04(水) 23:20:58
http://mukiyu.g.ribbon.to に繋がらないなーと思ってたら
ribbon.to の都合でIPアドレスが変更されたみたいです。
DNSの浸透が遅れていたのかな?やっと繋がるようになりました。

繋がらないといえばもう一つ
yyかきこがずっと死んでるみたいですね。
もう復活することはないみたいな噂も目にしましたが
今yyに板を構えてる方々はどうされるのか。。
チェックしていた板もあるので気になるところです。

193 ◆/vmukiyuzw:2014/06/12(木) 22:35:57
http://mattari.plusvip.jp/test/read.cgi/jane2ch/1368370279/128-129

http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/801
だと取得できますけどね。みみずんにもログがないとはどういう状況だろう。

http://anago.2ch.net/test/read.cgi/software/1401011356/461-462

も同じスレのことみたいだけどどこから取得できたんだろう。

194 ◆/vmukiyuzw:2014/06/13(金) 20:31:06
http://anago.2ch.net/test/read.cgi/software/1398335147/615

以前みみずんにあるまちBBSの過去ログ変換をやったことがあります。
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/709-712

今回はこれのprmファイル化を考えてみます。
(但し、以下をprmファイル化するだけではスクリプトでのログ取得はできない。
次レスに続く)


コメント:
# まちBBSの過去ログをみみずんから取得する

URLの変換:
s`http://(.*?)/bbs/read\.cgi/(.*?)/(\d+)/?.*`http://mimizun.com/log/machi/$2/$3.dat`

前処理:
# 1行目最終フィールドからスレタイを生成
s`^(\d+<>.*?<>.*?<>.*?<>.*?<>)(.*?)\n`<title>$2</title>\n$1`ik

透明あぼーんを補う:
true

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m`(\d+)(?# 第一フィールドはレス番なので捨てる)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>`ikx

195 ◆/vmukiyuzw:2014/06/13(金) 20:43:34
>>194続き)
上で書いたprmファイルをJaneのコマンドに組み込んで動作するかテストしたのですが
>>189と同様 http://mirrorhenkan.g.ribbon.to/jane/htmltodat-convert2/ を利用)
「Unregistered BBS」のエラーになります。
このエラーは、指定したURLの板がJane2ch.brdに存在しないということなのですが
調べてみると、URLにマッチさせてJane2ch.brdを検索するために指定されている正規表現が
まちBBSのURL形式に対応できていない部分がありエラーになっているようです。

スクリプトの13行目、
var src = 〜 として正規表現が指定されてるのですが、途中 /(?:test/.+?/) となってる部分があり
xxx.2ch.net/test/read.cgi/ の部分にマッチさせることを意図してると思うのですが
まちBBSでは xxx.machi.to/bbs/read.cgi/ となっているためマッチせずエラーになっていた模様。
ここを /(?:(?:test|bbs)/.+?/) としてやると多分うまくいくようになったと思います。

この話(/bbs/read.cgi/にマッチしない)のはほぼ同じような処理をしてるGetlogとかでも同じなんですが
URLの読み替えだけ対応しても取得できるdatの形式が2chとは異なるので
プラス何らかの対処をしないとそれだけでは専ブラで読めないと思われます。
htmltodat+htmltodat-convert2だとそこにはすでに対処しているので大丈夫と思います。


ところで、これのテストの為に過去ログをいくつか漁ってて気づいたんですが、
まちBBSではログURLをPATH_INFO形式でなくQUERY_STRING形式
(/read.cgi/板名/スレ番号/ ではなく /read.cgi?BBS=板名&KEY=スレ番号 の形式)
で表現されてるものがたまにあるようなのです。
2chではかなり昔に廃れた形式なのですが、まちBBSでは今でも使われてるのか
たまたま開いたスレがそうだっただけなのか。
この形式に対応しようと思うとまた別の読み替えパターンを考えないといけない・・・
面倒そうだしとりあえず放置しますか。

196 ◆/vmukiyuzw:2014/07/12(土) 00:46:17
http://anago.2ch.net/test/read.cgi/software/1405086867/

htmltodatでは 2ch.net のサーバにdatを取りに行く必要性はないので
直接的な影響はなさそうですが、なんか回りまわって
間接的な影響が出てきそうな予感がします。
いずれにせよ現時点では様子見くらいしかできないですが。

197 ◆/vmukiyuzw:2014/07/15(火) 06:45:17
まあどこまでできるかはわからないけれども
やりたいことのネタは振ってもらった感じですかね〜
目標としてレベル1,2,3と設定したんで
とりあえずレベル1を頑張る。といっても多分のんびりだし
同じことを先にやる人がいたらあきらめちゃうでしょうが。

198 ◆/vmukiyuzw:2014/09/14(日) 23:41:26
レベル1というのは、既存のプロキシツールを使って
htmltodat的処理を実現することだったんです。
本当はhtmltodat自体にプロキシ機能を組み込めたらいいなと思ったんですが
それは結構ハードルが高い・・・ので後回しにして手軽そうなとこから始めようかと
思った次第です。

最初はproxomitronのフィルタ程度でできるんじゃね?とタカをくくってたのですが
あんまりややこしいことするにはちょっと厳しいかなと断念。
で、いろいろ探してみたんですが、Fiddlerというソフトを発見しました。
わかりやすい解説は以下など
http://blog.loadlimits.info/2009/09/%E5%AE%9F%E3%81%AFfiddler%E3%81%8C%E3%81%99%E3%81%94%E3%81%99%E3%81%8E%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81%E6%A9%9F%E8%83%BD%E3%81%BE%E3%81%A8%E3%82%81%E7%B4%B9%E4%BB%8B/
http://www.hagurese.net/blog/default.aspx?pn=Fiddler%E3%81%A8%E3%81%AF&amp;sn=1

webアプリ開発に関わる人には驚くほど多機能で便利なソフトなのですが
ここで推す理由はhttpリクエスト・レスポンスをスクリプトで書き換え可能なところ。
つまり、datへのリクエストをread.cgiへのリクエストに変換でき
返ってきたhtmlをdatに変換することもできてしまうのです。
英語のソフトで日本語の解説もあんまりなくてとっつきにくい点はあるんですけどね・・・

てことでとりあえずread.cgiからdat変換するスクリプトをあくまでテストですが書いてみました。
http://mukiyu.g.ribbon.to/ の htmltodatByFiddler て奴です。

199 ◆/vmukiyuzw:2014/09/15(月) 23:59:16
>>41で書いたんですが(てもう9年も前かよ!)、
以前、Javaでプロキシもどきを書いてhtmltodatの前身みたいなことしてたんです。
その当時を思い起こすと、やりたいことは
・リクエストされたURLの読み替え
・返ってきたhtmlからdatへの変換
だけなのに、プロキシソフトとして成立させようと思うと
やりたいことの100倍くらいコード書かないといけなかったんです。
(通信回りとか文字コード変換だとかもろもろですな)
それでもプロキシの機能をすべて満たしてたわけではなかった・・・

それを考えると今回>>198で私の書いたコードは30行程度?
プロキシソフトの機能は満たしてる上に必要な機能を乗っけられたので
ものすごく簡単にできたのです。
実のところ、レベル2とか3とかいうのは
自分でプロキシサーバを書くことを目標にしてたんですが
こんな便利なツールがあるならこれを生かしていったほうがいいのでは?
とちょっと考え中です。

200 ◆/vmukiyuzw:2014/09/16(火) 21:01:28
>>198
今日、知人と「連休にこんなスクリプト書いたよ」って話をしていると
「それって配布していいもんなの?」との指摘を受けました。
確かに著作権の問題はあまり気にしていなかった・・・
C#等で作ったアドオンを公開されている方もおられるので
その延長で問題ないかと思ったのですが、
スクリプトで公開するとなると「Fiddlerが自動生成したスクリプト」を
含むことになるので、もしかしたらこれが問題になるかもしれません。
(生成されたスクリプトには著作権に関する記述はないようなので
問題ないのかもしれませんが)

ちょっと導入の敷居を上げることにはなるのですが、
配布するのは自分で書き足した部分だけにして
使う側でマージしてもらうということにしたほうが安全かなと考え
そのように変更しました。

201 ◆/vmukiyuzw:2014/09/21(日) 22:05:49
>>198
のスクリプトを修正しました。
 ・bbspinkへの対応が漏れていたので追加
 ・BE周りの処理が漏れていたので追加

しかし修正して再度配布することまで考慮してなかった(←考えが浅い)。
まるごとのスクリプトであれば全部上書きしてくれ、で済んだんですが
>>200みたいな事情で少々面倒なことしてるんで
すでに導入された方にはまたご面倒をかけると思います。
次の修正がもしあるなら配布方法を考えたほうがいいだろうなあ。

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&amp;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&amp;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
ということはそのままで壊れなくなったってことか


新着レスの表示


名前: E-mail(省略可)

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

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

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

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