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

htmltodatサポートスレッド

1</b><font color=#FF0000>(L44UP/ps)</font><b>:2002/11/30(土) 01:48
QA・要望等受け付けるかもしれない(?)スレッドです。
作者にスキルがないのでできないことが多いかとは思います。

379名無しさん:2006/12/23(土) 21:46:32
パー速vip
http://ex14.vip2ch.com/part4vip/
保管庫にあるhtmlをhtmltodatでdat化するには、どのような正規表現
にすればいいんですか。

380名無しさん:2006/12/24(日) 00:27:38
>>379さん
専用ブラウザにそのURLを外部板として登録すれば
そのまま読み込めるのではないかと思うのですが
それでは駄目でしょうか。

381名無しさん:2006/12/24(日) 07:31:04
>>380
http://ex14.vip2ch.com/part4vip/kako/116/1161445050.html
これで登録しても
http://ex14.vip2ch.com/part4vip/
になり現行のスレしか表示されません
Jane Styleのアドレスに
http://ex14.vip2ch.com/part4vip/kako/116/1161445050.html
を入力してもログ取得できません、
ニュース速報(VIP)@避難所の過去ログはできたんですが
htmltodatで変換はできませんか、
ここで相談することではありませんがお願いします。

382名無しさん:2006/12/24(日) 08:54:56
>>381
これでどうでしょう

m#<dl><a.+?>\t([0-9]+) 名前:(?:<font color="forestgreen">|<a href="mailto:(.+?)">)<b>(.*?)</b>(?:</a>|</font>):(.+?)<dd>(.+?)</dl>(<dl>|<hr)#mi

383名無しさん:2006/12/24(日) 09:07:45
>>382
ありがとうございますできました

384名無しさん:2006/12/28(木) 13:37:35
処女はお姉さまに恋してる第43話
http://makimo.to/2ch/bbspink-idol_hgame2/1151/1151736029.html

>>362の前処理にある「2ch\.net」を「bbspink\.com」に、$server/$boardにそれぞれidol/hgame2を入れて変換して
みたのですが、テンプレにあるエロゲー作品別板から他所の板(2ch.netだけでなくbbspinkの板も)へのURLがうまく
変換できません。
どのようにすれば良いのでしょうか?

385名無しさん:2006/12/28(木) 21:53:07
>>378
いそがしくてなかなかお返事できなくて申し訳ありません。

>>362
でやったらうまく変換できました。
大変ありがとうございました。

これからも宜しくお願いします。

386 ◆/vmukiyuzw:2006/12/28(木) 22:23:38
>>384さん
makimo.toでのbbspink.comのログに関しては

(1)同じ板内へのリンク:../1150/1150506092.html
(2)2ch.netの別板へのリンク:../../game9_gal/1139/1139744135.html
(3)bbspink.comの別板へのリンク:../../bbspink-idol_hgame/1149/1149173250.html

・・・ということみたいです。で、2ch.netのログとの扱いの違いは

(1)2ch.netと同じ形式。ただし変換結果は当然bbspink.comにする必要あり。
(2)2ch.netと同じ形式。ただし(1)とは逆で変換結果は2ch.netにする必要あり。
(3)鯖名の前にbbspink- の文字列がつくようだ。変換結果はもちろんbbspink.com。

間違いはあるかもしれないけどおおむねこんな感じかと。
これを踏まえ>>362の前処理を書き換えるには・・・
・・・申し訳ない今日はエネルギー切れです。自力で考えるか、わかる人回答してあげて下さい。

387 ◆/vmukiyuzw:2006/12/28(木) 23:52:01
・・・と言いながらももうちょっとがんばってみよう・・・
まず>>362の前処理は以下のとおり

s#(/\d+\.html)\.html(</a>)#$1$2#ig
s#(>)\.\./\d+?/(\d+?)\.html(</a>)#$1http://$server\.2ch\.net/test/read\.cgi/$board/$2/$3#ig
s#(>)\.\./\.\./(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.2ch\.net/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\d+?/(\d+?)\.html(?:\.html)?(?:\#)?([^<]+?)?(</a>)#$1http://$server\.2ch\.net/test/read\.cgi/$board/$2/$3$4#ig

1行目は2ch.netかbbspink.comかに関係ないのでそのままでOK
2行目と4行目は「\.2ch\.net」を「\.bbspink\.com」に修正すればOK
問題は3行目ですが>>386の(3)のとおりbbspink-があるかないかで
bbspink.comなのか2ch.netなのかが変わってきます。
(bbspink.comのスレだが中に2ch.netに対するリンクがありうるので無視するわけにはいかない)
なので2つに分けてしまいましょう。

s#(>)\.\./\.\./bbspink-(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.bbspink\.com/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\.\./(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.2ch\.net/test/read\.cgi/$3/$4/$5#ig


結局まとめるとこんな感じでしょうか

s#(/\d+\.html)\.html(</a>)#$1$2#ig
s#(>)\.\./\d+?/(\d+?)\.html(</a>)#$1http://$server\.bbspink\.com/test/read\.cgi/$board/$2/$3#ig
s#(>)\.\./\.\./bbspink-(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.bbspink\.com/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\.\./(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.2ch\.net/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\d+?/(\d+?)\.html(?:\.html)?(?:\#)?([^<]+?)?(</a>)#$1http://$server\.bbspink\.com/test/read\.cgi/$board/$2/$3$4#ig


ちなみに3行目、4行目はこの順番でないとダメです
なぜなら、4行目の(.+?)_はbbspink-pieにもヒットしてしまうので3行目で先に変換しておかないと
2ch\.netにみなされてしまいまずいことになるからです

388 ◆/vmukiyuzw:2006/12/31(日) 01:11:47
makimo.toの過去ログに関しては、663 ◆fnwcOWFi56 さんが書いてくださった
>>362 でおおむね変換できるものと思います。
※ただ、2ch.netではなくbbspink.comの過去ログに関しては
 前処理を>>387のものにする必要があると思います。
 (正規表現等は>>362のものでOKかな?)

しかし、makimo.toのログにはあまりにいろんなバリエーションがありますので、
(なんせ620万スレッドを超える過去ログを保有しているらしいですから)
>>362でも>>387でも変換できないパターンがあると思うのです。
それらに個別に対応するには自分ひとりのパワーではあまりに不足に思えますし
他の方にサポートをお願いするにも限界があるかなと思いますし・・・。

----------------------------------------------------------------------------
なので、正直言うと、今年末でmakimo.toが閉鎖して、どうしようもなくなって
一息つくまではできるだけレスとかせず逃げ回っていようと思っていたのです。
それしかできることは思いつかなかったので・・・
----------------------------------------------------------------------------

しかし、実際にはmakimo.toさん側でもいろいろ規制をかけられたりして
無制限にHTMLがダウンロードされることもなく、結果ここにも質問が殺到したり
することもなかったので、まあホッとしたという感じです。

明日(てもう今日か)帰省するので今年最後の書き込みです。
皆様よいお年を。

389名無しさん:2006/12/31(日) 21:08:09
遅くなりましたが、mukiyuさんありがとうございました。
他のスレも何個か見ましたが、問題はなさそうです。

390名無しさん:2006/12/31(日) 21:12:29
名前が抜けてしまいましたが>>389=384です。

391名無しさん:2007/01/06(土) 01:37:31
htmltodat0.8.8を使っています
立ち上げるとhtmltodatの枠の部分が小さく表示されdat保存ボタンがあるところまで表示されません。
スクロールバーを使わなくては下まで表示されないのです。
同様に変換オプションや一覧表示なども下まで表示されません。
改善策はあるのでしょうか?

392名無しさん:2007/01/06(土) 09:35:13
>>391
俺も同様。ただし自宅のWin98で。

職場のWin2000では正常に表示される。

参考までに。

393 ◆/vmukiyuzw:2007/01/06(土) 15:55:45
>>391さん
原因のひとつらしき点を修正してみましたが、環境による問題なので
十分に検証することが出来ません。
なので、以下の暫定版で動作確認して結果報告いただけたらありがたく思います。
>>392さん他同様の現象が出る方にも)

http://mukiyu.hp.infoseek.co.jp/htmltodat/htmltodat0.8.8.1.zip

中身はhtmltodat.exeだけです。
今お使いのバージョンをバックアップした上で上書きしてお使いください。

394名無しさん:2007/01/07(日) 05:22:39
この保管ログが上手く変換できません…
ttp://search.mimizun.com:82/cgi/dattohtml.pl?http://mimizun.com:81/log/2ch/sec/pc8.2ch.net/sec/kako/1153/11531/1153128180.dat

『read.cgi7.00?』とかで変換はできるのですが「<><>」が「[]&nbsp;投稿日:」になってしまいます…


…「直接datで落せば」とか言われるのは判ってますが、
是非上手い変換スクリプトをおながいします

395391:2007/01/07(日) 09:22:29
もう遅れましたが、自分はXPです。

396391:2007/01/07(日) 09:24:33
>>393
すみません。EXEをアボーン設定しているのでレスが見えませんでした。
確認してみます。

397名無しさん:2007/01/07(日) 09:26:51
>>393
改善されました。ありがとうです!

398 ◆/vmukiyuzw:2007/01/07(日) 18:05:42
>>394さん
663 ◆fnwcOWFi56 さんが別のところで考えてくださったそのままのコピペですが

m#<dt.*?>([0-9]+).+?<b>(?:.+?"mailto:(.+?)">)?(.+?)(?:</a>)?</b></font> ?:(.*?)<dd> ?(.*?)<br><br>(<dt.*?>|</dl>)#mi

ちなみに
> …「直接datで落せば」とか言われるのは判ってますが、
何故わざわざhtmltodatを経由したいのか参考までに教えていただきたく思います。

399 ◆/vmukiyuzw:2007/01/13(土) 17:16:04
さて、>>393の件ですが>>391さん以外からは動作報告があがってないようですね。
98/Me系での動作確認が取れればそのまま正式バージョンにしようかと思っていたのですが
当面ペンディングですかね。
まあ次にバージョンアップする機会があればそのときに一緒に入れてしまうと思いますが。

400名無しさん:2007/01/13(土) 20:12:55
>>393 >>399
>>391さんと同じXPですがきちんと表示されるようになりました。
ありがとうございました。

401名無しさん:2007/01/16(火) 22:45:39
要望です。
クッキー・User-Agent・ベーシック認証に対応して頂けないでしょうか。

クッキーの件ですが
remix2ch(http://contents-factory.net/remix2ch/)さんや
makimo.toさんの所でクッキー送信が必要な場合があります。

User-Agentですが
http://pita.paffy.ac/さんのdatを直接取得したい時や
●ログイン時などでMonazillaを使いたい場合があります。

ベーシック認証ですが
p2のhtml取得時に必要な場合がありますので(滅多にないですが)
あったら嬉しいです。


どこまで突っ込んで書いたらよいのかわからないので
簡単に書いたです。
詳細は下記で

http://yy14.kakiko.com/test/read.cgi/mirror/1158402994/450-451n

以上、宜しくお願い致します。

402 ◆/vmukiyuzw:2007/01/17(水) 21:48:13
>>401さん
いずれもHTTPリクエストヘッダで指定される内容ですね。

他にも指定したいものが出てくるかもしれませんし
(例えばリファラを要求されるサイトとかあるかもしれませんし)
汎用的に任意のヘッダ要素を追加指定できるようなメモウィンドウでも
付けましょうかね。
具体的にどんな形式で指定すべきかは、まあどのみち
proxomitron等でモニターして自分で調べないといけないと思うので、
使う側にお任せということで。
こんなとこでいかがでしょう。

ところで、>>401であげられてる例の半分くらいはhtmlというより
datを直接取得したい場合のような気がしますね。
「htmltodat」なのにdatを直接取得してどうするという話ですが
今では変換処理を経由せず前処理で直接ファイル保存ができるように
なってるのでそれを使っていただければいいかと思います。

(以前この機能がなかったときにはたわむれにdat→dat変換の
正規表現を書いたこともありましたが)

403663 ◆fnwcOWFi56:2007/01/17(水) 23:02:37
>mukiyuさん
是非その線でお願いします。
もう一ついいでしょうか。

subject.txt作成の時
旧形式のdatをまとめる場合が結構ありますので(私だけかな)
区切り記号(デリミタというのでしょうか)を
「<>」と「,」を選べるようにして頂けないでしょうか。

404 ◆/vmukiyuzw:2007/01/18(木) 00:18:11
>>403
んーと、ちょっと確認が。

旧形式のdat(カンマ区切り)からsubject.txtを作るのはいいとして、
subject.txt自体は現行の形式(「<>」で区切られている)でいいですよね?

※というのも、monazillaの資料を見ていると、subject.txt自体にも旧形式
 (カンマ区切り)のものが存在するようなのです。ので一応念のため。

あと旧形式のdatってデリミタの「,」と区別するためにdat中に現れる「,」を
「@`」に変換してますよね。
これもsubject.txt作成時には「,」に戻す必要がありますよね。

(アットマークが半角か全角か定かでない・・・自分の記憶では全角なのですが
monazillaの資料だと半角なのです。念のため両方変換するか)

405663 ◆fnwcOWFi56:2007/01/18(木) 20:37:29
> mukiyuさん

> subject.txt自体は現行の形式(「<>」で区切られている)でいいですよね?

いいですいいです。

アットマークですが
確か全角みたいです。(「,」)
>>386のdatとかそうですし。

http://piza.2ch.net/log/musicj/kako/959/959833697.dat

406 ◆/vmukiyuzw:2007/01/20(土) 20:31:16
バージョンアップしました。(0.8.9)
 ・「proxy設定」ボタンを削除し、代わりに「受信オプション」を追加。
  proxy設定機能は受信オプション設定内にまとめるようにした。
 ・受信オプション設定に「HTTPヘッダ追加」欄を追加。
  Cookie,User-Agent,Authorization等のヘッダを任意に指定できるようにした。
 ・subject.txt作成で、旧形式のdat(カンマ区切り形式)からもsubject.txtを
  作成できるようにした。
 ・特定の環境下で、フォームの内容が枠に収まらずスクロールバーが出てしまう
  不具合を修正。


まず「HTTPヘッダ追加」についてですが、>>401-402のとおり
HTTPリクエストヘッダに任意の行(RFC邦訳を見ると「ヘッダフィールド」と
呼ぶみたいですが)を追加するためのものです。
例えば

Cookie: text=dat<>1<>0<>false<>mycss=<>0<>0<>3000<><><><>
User-Agent: Monazilla/1.00(htmltodat/0.8.9)

のような感じでヘッダに含めて送信したい内容をそのまま指定します。
また、変換オプションの前処理等と同様、保存・呼び出しが可能です。
(拡張子は'.hdr')

※ちょっと内部処理の話なのですが、デフォルトで存在するヘッダ行に
 単純に行を追加するだけなので、デフォルトの行を上書きすることは
 基本的には出来ません。
 但し、User-Agentだけは例外で、(変更したい要望があったので)
 上書きできるようにしています。
 もし、他に上書きしたい行がある場合は(あんまりないとは思いますが)
 要望していただければ検討します。


次にsubject.txt作成の旧形式dat対応ですが、旧形式と現行形式を混在させて
処理することは出来ません(まあ単に判別が面倒だからなのですが・・・)。
フォルダを別にして処理する等して対処をお願いします。


最後の不具合の修正については、>>391-392で報告いただいて>>393
対応した(つもり)のものですが、まだあまり自信がないので、
まだ不具合があればご報告ください。

407663 ◆fnwcOWFi56:2007/01/20(土) 21:12:14
>mukiyuさん

ありがとうございます。
今日は不調なので後日試させて頂きます。

408663 ◆fnwcOWFi56:2007/01/21(日) 12:41:37
試してみたです

出来ました!
凄いです!
ありがとうございました!

409 ◆/vmukiyuzw:2007/01/23(火) 00:37:53
ちょっとスレ違いなのですが
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1061022990/15

htmltodat自体もvistaで動くのかという気もするのですが
まあ何とかなるのではと思います。
JaneLogMoverは内部でOSが2000/XP系か98/Me系かを判定して
処理を分岐しているので、そろそろ対応を考えておかないと
まずいかなと思ったわけです。
というわけで情報お持ちの方はよろしくお願いします。

410名無しさん:2007/01/24(水) 17:56:55
http://ex14.vip2ch.com/part4vip/kako/116/1166959235.html

このスレを変換しようと>>382で書かれている正規表現を使用したのですが
途中でエラーになります。ちゃんと変換できる方法はありますか?

411663 ◆fnwcOWFi56:2007/01/24(水) 19:08:05
>>410さん
「:」と日付の間の半角スペースが無いのが原因みたいです。下のでどうでしょう

m#<dl><a.+?>\t([0-9]+) 名前:(?:<font color="forestgreen">|<a href="mailto:(.+?)">)<b>(.*?)</b>(?:</a>|</font>): ?(.+?)<dd>(.+?)</dl>(<dl>|<hr)#mik

412 ◆/vmukiyuzw:2007/01/24(水) 19:58:44
>>410-411さん
私の環境では>>382の正規表現で正常に変換できましたが。

>>411(663 ◆fnwcOWFi56)さんの

> 「:」と日付の間の半角スペースが無いのが

ですが、これが無くても結果に無駄な半角スペースがつくだけで
エラーにはならないと思うのです。
htmlソースをざっと見てみましたが:と日付の間に半角スペースは
見当たりませんし。

・・・で、推測ですが、いったんブラウザで表示させたものを
「名前を付けて保存」として保存したhtmlを変換しようとしてませんか?
もしそうであれば、htmltodatにURLを直接入力してhtmlを取得して
やってみてください。
※過去にも何度か書きましたがブラウザの機能で保存すると
 htmlが適当に加工・整形されてしまうので、正規表現は
 変えないといけなくなる場合があります。

あと、スレタイに余分なものがついているので、

s#(<title>.*?)@VIPService過去ログ倉庫(</title>)#$1$2#ik

と入れて整形したほうがいいんじゃないでしょうか。

413 ◆/vmukiyuzw:2007/01/24(水) 20:20:42
ちょっと言葉足らずでした。

s#(<title>.*?)@VIPService過去ログ倉庫(</title>)#$1$2#ik

と「前処理」に入れて整形したほうが〜

です。

414名無しさん:2007/01/25(木) 00:22:43
>>411-413
ありがとうございます
>>411さんの正規表現でできました
その後>>382で試したところエラーになりました
前処理は役に立ちました
ありがとうございました

415 ◆/vmukiyuzw:2007/01/25(木) 08:52:05
>>414さん
解決したのでもう見ておられないかもしれないですが・・・
>>411でも書きましたが>>410のURLは>>382の正規表現で私のとこでは
うまくいくのです。
同じURLを同じ正規表現で処理してエラーになったりならなかったりする
というような状況は経験に無いので、以下の点だけ確認させてください。

・環境(OS、htmltodatのバージョン)
・エラーの内容(多分「一行が長すぎるか正規表現が正しくありません」だと
 思うのですがもしそれ以外だったらその内容)
・エラーが出たときの、「読込行:xxxx/変換行:xxxx/バッファサイズ:xxxx」
 (画面左下、「dat変換結果」欄の下に表示されているはず)の内容

以上、よろしければお願いします。

416名無しさん:2007/01/25(木) 10:37:03
http://search.mimizun.com:82/perl/dattohtml.pl?http://mimizun.com:81/log/2ch/hgame2/idol.bbspink.com/hgame2/kako/1163/11635/1163503512.dat

みみずん検索のdatを変換するには、どのようにすればよいのでしょうか?
よろしければ、ご教授ください。

417名無しさん:2007/01/25(木) 15:31:10
>>415
OS XP Media
htmltodat 0.8.9
エラーの内容「一行が長すぎるか正規表現が正しくありません」
「読込行:176/変換行:0/バッファサイズ:10100」

こうなりました

418 ◆/vmukiyuzw:2007/01/25(木) 21:12:33
>>416さん
URLの先頭から dattohtml.pl? までを削って
http://mimizun.com:81/log/2ch/hgame2/idol.bbspink.com/hgame2/kako/1163/11635/1163503512.dat
にすれば直接datを落とせます。

どうしてもhtmlから変換したいということなら
>>398 でできると思います。

419 ◆/vmukiyuzw:2007/01/25(木) 21:25:00
>>417さん
ご報告ありがとうございます。
申し訳ないのですが最後にもう一点だけ確認していただけないでしょうか。

>>382の正規表現の最後に k を付けて

m#<dl><a.+?>\t([0-9]+) 名前:(?:<font color="forestgreen">|<a href="mailto:(.+?)">)<b>(.*?)</b>(?:</a>|</font>):(.+?)<dd>(.+?)</dl>(<dl>|<hr)#mik

これでもエラーになるでしょうか?

420416:2007/01/25(木) 21:59:16
>>418
ご回答いただき誠にありがとうございます。
また、よく調べもせずに安易に質問して申し訳ございませんでした。

421名無しさん:2007/01/25(木) 22:23:09
>>419
同じエラーになりました
読込行100を過ぎたあたりからスピードが遅くなっています

422 ◆/vmukiyuzw:2007/01/26(金) 22:11:01
>>421さん
再度のご報告ありがとうございます。

残念ながら、エラーになる原因がわからないです。
>>411がOKで>>419がエラーになる理由もわかりません。
(正規表現上での違いは一箇所しかないのです・・・でもそこが
エラーになる原因とは考えにくいのです)

これ以上はおそらく環境の問題だと思うのですが、>>421さんのPCを
直接触らせていただくくらいしか調べる方法が思いつかないので、
この件は申し訳ないですがいったん中断にさせてください。。。

もし他に何か思い当たる点があればご報告頂きたくお願いします。

423 ◆/vmukiyuzw:2007/02/09(金) 23:29:31
>>422の続きですが
このスレ自体をブラウザで表示した際に、>>419のように書いたな正規表現が
ワードラップの関係で途中で改行されて、そこに不要な半角スペースが
入ってしまう可能性があるようです。
ブラウザの文字サイズを最小にするか表示領域の横幅を最大にして
改行されない状態でコピペするとうまくいくかもしれません。

424 ◆/vmukiyuzw:2007/02/10(土) 00:01:46
makimo.to(にくちゃんねる)のhtmlを現状でdat化する方法を
まとめておこうかな。

・「受信オプション」-「HTTPヘッダの追加」で
Cookie: text=dat<>1<>0<>false<>mycss=<>0<>0<>3000<><><><>
または
User-Agent: Monazilla/1.00 (htmltodat/0.8.9)
を指定する。
・該当のURLを入力してHTML取得(この時点でdat形式で取得されるはず)
・「変換オプション」-「前処理」で
w $SELECTFILE.dat
を指定する。ついでに「dat変換をしない(前処理のみ行う)オプションを
チェック。
・「変換開始」ボタンを押すとファイルの保存ダイアログが出てくるはず。
で任意のフォルダにdatを保存。

現状ではログを7日間しか保持されていないそうなので、それ以前にdat落ちした
ログとかでは無理ですが、そうでなければこちらの方法のほうが簡単だと思うので。

425 ◆/vmukiyuzw:2007/02/10(土) 02:34:36
>>424の方法はちょっと保留にさせてください。
なんかdatの最後にゴミがくっついてくる場合があるようで・・・
にくちゃんねる側の不具合の可能性もあるのですが
gzip圧縮で転送されてくるのでhtmltodat側での解凍の
不具合である可能性もあります。
調査します。

426 ◆/vmukiyuzw:2007/02/10(土) 15:24:41
バージョンアップしました。(0.8.10)
 ・gzip解凍の際に結果にゴミがついてしまうバグを修正。
 ・受信データの最後が改行コードであった場合に、改行コードが欠落して
  しまうバグを修正。

今回は不具合対応のみです。

どちらも結構前からあったバグだと思われますが、
gzip解凍のゴミ:gzip圧縮されたデータを扱うこと自体が少なかったと
思われるのと、html→dat変換に必要ない部分は基本的に見ていないので
問題とはならなかったと思われます。
改行コードの欠落:これもhtml→dat変換には関係ない部分ですので
発覚しなかったと思われます。

いずれも、>>424の方法で直接datを取得しようとして「何か変だ・・・」
と思い調べてみると発覚したものです。
改行コードの欠落については、ブラウザによっては問題なく読めるものも
あったのですが、最後1レスを認識しなくなるブラウザもあったので
対応しました。

427名無しさん:2007/02/18(日) 13:13:05
http://kiritsukegomen.hp.infoseek.co.jp/log/jisaku1145017036.html
のログを変換しようとすると、「1行が長すぎるか正規表現が正しくないようです」
となって読み込みが途中で止まってしまいます。
ここの他のログはread.cgi7.00?で変換できたのですが、このログだけダメです。
正規表現をどう変えればいいのでしょう?

428663 ◆fnwcOWFi56:2007/02/18(日) 15:15:50
>>427さん
makimo.toさんのhtmlをブラウザ保存したものみたいなので
下の正規表現で何とかなるかもです

m#<dt>([0-9]+) 名前:<span .*?>(?:<span title="(.*?)" class="?sage"?>|<a href="mailto:(.*?)" class="?mailto"?>)? ?(.*) (?:</a>|</span>)?</span> ?(.*?) <br>(?:</dt>)?<dd> *?(.*?) <br> *?<br> *?(<a name.*?>|</tl>|(?:</dd>)?</dl>)#mik

前処理その他は>>362でいいのかも

429427:2007/02/18(日) 16:44:04
早速ありがとうございます。
>>362の$boardを変更するとうまくいきました。無料サポありがとうございます。

430<削除>:<削除>
<削除>

431663 ◆fnwcOWFi56:2007/03/09(金) 19:24:26
いつもお世話になっております。
また要望よろしいでしょうか。

後処理でもwコマンドを使えるようにしては頂けないでしょうか。

現状ではwコマンドは前処理でのみ使えるのですが
後処理でも使えるなっていれば有り難いです。

例えばdatの保存先フォルダを自動取得して
それが
C:\My Documents\Nida070202\Logs\2ch\案内\ガイドライン\1165245437.dat
だった場合
後処理でwコマンドが使えたら

w C:\My Documents\DoeView051128\NidaUTF8\Nida070202\Logs\2ch\案内\ガイドライン\1165245437.dat

とやれば、dat変換完了と共に該当フォルダに保存出来るので嬉しいのですが。
もし可能でしたらお願い致します。

432 ◆/vmukiyuzw:2007/03/09(金) 22:38:04
なるほどそういう用途がありましたか。目からウロコです。

実は現状の仕様は
・前処理:読み込んだHTML全体に対して作用するようになっている
・後処理:変換結果のdatの一行ずつに作用するようになっている
ので、単純に前処理と同じように処理したのではたとえばdatが1001行あれば
wコマンドでの保存処理も1001回行うことになってしまい非常に効率が悪い
ことになってしまいます。

・・でも考えてみると、前処理と後処理で仕様が異なっているのには
特に深い理由はなく、

・前処理:相手にするHTMLがどんな形式かわからない。ので一行ずつ処理するのは
 意味がない可能性があるので、全体に作用するようにした
・後処理:dat形式に整形された後なので形式はわかっている。であれば一行ずつ処理
 するほうが簡単かなと思った

ということだったりします。
で、後処理のほうも前処理同様一行ずつではなく変換結果全体に作用するように
仕様変更すればいいのかもなのですが、今の仕様を前提に後処理を使っている人が
もしいたら困られるかもしれないです。(まずいないだろうとは思うのですが・・・
大抵代替手段はあると思いますし)

なのでしばらくペンディングにさせてください。
仕様変更されたら困ると言う方がおられればご報告ください。

433663 ◆fnwcOWFi56:2007/03/23(金) 20:19:37
# ペンディングの件理解しました
# お気が向いた時にお願い致します


毎回すみません。
再び要望と正規表現を教えて頂きたく思います。

まずは要望ですが
各種設定をURLに含めるタイプのものに対応して頂けないでしょうか。

具体的な例をあげると
例えば下のスレッド

(1)http://s.s2ch.net/test/-/wwwww.2ch.net/news4vip/1174582871/1-1001

これだと「省17」等で省略されたり
ID・AASのリンクがついてしまっています。
最下部の設定(「設」)で変更すると
設定はクッキーではなくURLに含まれてしまうようです。
とりあえず下記

(2)http://s.s2ch.net/test/---.uaY!FROM=&amp;mail=&amp;color=000000+efefef+0000FF+0000FF+FFFFFF&amp;size=3&amp;NG_NAME=&amp;NG_MAIL=&amp;NG_DATE=&amp;NG_MESSAGE=/wwwww.2ch.net/news4vip/1174582871/1-1001

つまり、省略やその他設定を変更するには
URLの
「〜test/-/server.2ch.net/〜」

「〜test/---.uaY!FROM=&mail=&color=000000+efefef+0000FF+0000FF+FFFFFF&size=3&NG_NAME=&NG_MAIL=&NG_DATE=&NG_MESSAGE=/server.2ch.net/〜」
に変えればいいみたいです。

見たところ、この文字列は他でも大体同じようなので
htmltodatのほうで対応しては頂けませんでしょうか。
つまり、例えば(1)のURLを入力実行すると
(2)のURLで送信取得するというように。

434663 ◆fnwcOWFi56:2007/03/23(金) 20:41:44
次に、これのdat化について教えて頂けないでしょうか。

URL再掲
http://s.s2ch.net/test/---.uaY!FROM=&amp;mail=&amp;color=000000+efefef+0000FF+0000FF+FFFFFF&amp;size=3&amp;NG_NAME=&amp;NG_MAIL=&amp;NG_DATE=&amp;NG_MESSAGE=/wwwww.2ch.net/news4vip/1174582871/1-1001

これに対する正規表現を考えてみたのですが
メール欄の箇所がうまくマッチしないです。
いちおう考えてみたものは下記

m#(?:<form action=i>|<br><br>)([0-9]+):<font color=forestgreen><b> </b>(.+?)<b> </b></font>(?::(.+?))?:(.+?) <br>(.+?)(<br><br>)#mik

変換結果式はメール欄逆転で。

途中の数レスが変換出来ないですが
beリンクの箇所のようなので、前処理で何とかなると思うです。

問題はメール欄で

メール欄未記入の場合
</font>:2007/03/23(金) 02:01:11.88 ID:hWYzwspD0 <BR>

メール欄に記入されている場合
</font>:sage:2007/03/23(金) 02:22:50.98 ID:CU23YYu/0 <BR>

というように
「</font>」と「:(日付)」の間にメール欄が(ある場合は)入るのですが
これはどのように切り分ければ良いのでしょうか。

435 ◆/vmukiyuzw:2007/03/24(土) 00:34:13
>>433
htmltodat流にやるなら、やっぱ正規表現を指定して変換するとかでしょうかね。
たとえば
s#(http://s.s2ch.net/test/)-(.*)#$1---.uaY!FROM=(中略)NG_MESSAGE=$2#
みたいな感じで。

>>434
多少強引ではありますが以下のようなのでどうでしょう。
m#(?:<form action=i>|<br><br>)([0-9]+):<font color=forestgreen><b> </b>(.+?)<b> </b></font>(?::([^/]+?))?:(.+?) <br>(.+?)(<br><br>)#mik

単にコロンとコロンの間にマッチさせようとすると、時刻表示の中のコロンに引っかかって
おかしくなってしまうので、[^/]+?としてみました。
(スラッシュ(日付表示の中に登場する)以外の繰り返し+コロンにマッチさせることで
結果的に時刻表示中のコロンにマッチさせるのを避けている)

これでもメール欄中にスラッシュがあるとまずいのですがまあそんなのは
レアケースだろうということで。

436 ◆/vmukiyuzw:2007/03/24(土) 01:01:53
よく考えるとメール欄中にスラッシュというのは本来の使い方からすると
決してレアケースではないはずですね^^;
まあそういう使い方が現状ではレアケースってことで。

437663 ◆fnwcOWFi56:2007/03/24(土) 17:49:31
即レスありがとうございます

> (スラッシュ(日付表示の中に登場する)以外の繰り返し+コロンにマッチさせることで
> 結果的に時刻表示中のコロンにマッチさせるのを避けている)

目からウロコでした。こういう使い方も出来るとは勉強になりました。


URLを正規表現で指定して変換するような機能ですが
あったら嬉しいです。
2chのURLを入力してsnapshotの該当URLに変換するとしたら
s#(http://.+)#http://p2.chbox.jp/read.php?url=$1/all#i
とか。
やって頂けたら嬉しいです。

438 ◆/vmukiyuzw:2007/03/24(土) 23:58:30
URLを正規表現で変換するような機能なら多分受信オプションに追加して
他のオプションと同様選択とか追加とかできるようにする感じですかね。

しかしまあ個別にオプションを指定するのは汎用的かもしれませんが
面倒かもしれないなと思う今日この頃。
まとめていっぺんに指定(とか保存)とかできるようにしたほうがいいのだろうな
しかしどうやってやればいいのかと考える次第です。

439名無しさん:2007/03/30(金) 09:50:52
えと、2ch DAT落ちスレ ミラー変換機 ver.4 で検索してその22に目的のスレありました。
その22:ttp://namahage.dip.jp/public/2ch_s/read.asp?url=http://pc8.2ch.net/test/read.cgi/cg/1147348472/

変換方法教えてもらえませんでしょうか。
スレ違いだったらすみません。

440439:2007/03/30(金) 11:08:10
色々ググって解決しました。
生禿さんとこは以下でいけるようです。
お騒がせしました。

正規表現
m#<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b> ?(.*?)<dd> ?(.*?)<br><br>(<dt>|</dl>)#mi

前処理
s#(<title>.+?) ?\(\d+\)(</title>)#$1$2#
s#<font color="red">生禿あぼーん</font>#あぼーん#igk
s#(<b>)ナナシ(</b>)#$1$server$2#igk

$server
名無しさん@お腹いっぱい。

441 ◆/vmukiyuzw:2007/04/01(日) 15:56:47
# 今年のエイプリルフールは特に何もないようなので・・・

バージョンアップしました。(0.8.11)
 ・受信オプション設定に「URLの変換」を追加。
 ・変換オプション・後処理の仕様を変更。
  出力結果のdat一行ずつに対して作用するようにしていたのを、出力結果全体
  に対して作用するよう修正。
  また、前処理と同様のwコマンドを追加。

URLの変換については>>433,>>435,>>437参照。

後処理の仕様変更については>>431-432参照。
もし変更の影響が出た場合は、sコマンドの最後にgオプションとか付ければ
大抵回避できると思います。

442名無しさん:2007/04/05(木) 00:57:05
スイマセン。よろしいでしょうか
http://jbbs.livedoor.jp/computer/6306/storage/1169464997.html
上のURLをjbbs過去ログの正規表現で変換しようとしたのですが
[1行が長すぎるか、正規表現が正しくないようです]
と出てしまいます。(他の過去ログも同じ)
自分がやった方法は
1、URLをコピペしてHTML取得
2、一覧表示からjbbs過去ログを選ぶ
3、変換開始 ←ここで[1行が〜]
と出てしまいます。
ちなみに上記以外はどこもいじっていません…
解決策があればお願いします。

443 ◆/vmukiyuzw:2007/04/05(木) 01:30:23
>>442さん
jbbsの過去ログの形式が微妙に変更されているようですね。
あわせて正規表現を以下のように変更してみました。

m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B> ?(.*?) ?</B>(?:</A>|</FONT>)(?: 投稿日)?: ?(.*?)(?:<BR>)?<DD>(.*) ?<BR><BR>#mik

一応、以前の形式とも互換性を取れるようにしたつもりです。

444名無しさん:2007/04/05(木) 01:48:50
>>443
夜更けにこのような迅速な対応…感謝します!!
早速使わせていただきました、datも問題なくばっちり一発でしたww
本当にありがとうございますm(__)m

445名無しさん:2007/04/11(水) 18:19:42
私も>>442の、[1行が長すぎるか、正規表現が正しくないようです]
のエラーが出て変換出来ませんが、>>442とは別なようでした。

2ch DAT落ちスレ ミラー変換機 ver.4の、その9のsnapshotなんですが
以下のようなアンカの多いレスで失敗しています。

>1>2>3>4>5>6>7>8>9>10
>11>12>13>14>15>16>17>18>19>20
>21>22>23>24>25>26>27>28>29>30
>31>32>33>34>35>36>37>38>39>40
>41>42>43>44>45>46>47>48>49>50
>51>52>53>54>55>56>57>58>59>60
>61>62>63>64>65>66>67>68>69>70
>71>72>73>74>75>76>77>78>79>80
>81>82>83>84>85>86>87>88>89>90
>91>92>93>94>95>96>97>98>99>100

このような場合はどうすればいいのでしょうか?

446445:2007/04/11(水) 18:28:40
アンカだけでなくURLリンクも多く貼られていると同様です。

447445:2007/04/11(水) 18:30:02
アンカだけでなくurlリンクも多く貼られていると同様です。

448 ◆/vmukiyuzw:2007/04/11(水) 20:21:10
>>445さん
ミラー変換機その9(snapshot)の変換方法は
http://www.geocities.jp/mirrorhenkan/snapshot/
にまとめられてますが、もちろんこの手順通りに行った結果で
エラーになってるんですよね。
とりあえず、アンカーの多いスレ、URLリンクの多いスレの
(snapshotでの)URLを教えていただけると何とかできるかもしれません。

449445:2007/04/12(木) 09:18:03
>>448殿、よろしくです。

ミラー変換機その9のものでもちゃんと変換されるものもありますし、IEでsnapshot開いて
該当スレをフィルタしたものをローカル保存したものであればちゃんと変換されますから
間違いは無いと思います。

ここの605
http://p2.chbox.jp/read.php?host=tmp6.2ch.net&amp;bbs=download&amp;key=1169907405&amp;ls=all

ここの2、3
http://p2.chbox.jp/read.php?url=http://tmp6.2ch.net/test/read.cgi/download/1170602478/all

「read.cgi7.00?」でうまくいかない
http://web.archive.org/web/20050312081450/http://fun.kz/test/read.cgi/tech/1084697545/

450名無しさん:2007/04/12(木) 20:03:44
『2ch DAT落ちスレ ミラー変換スクリプトについて考える掲示板』
の649、651のにすると上手く変換できたようです。ありがとうです。

fun.kzとアンカーのは変換できましたが、urlリンクの方はfatal error
で失敗します。
ここの2、3
http://p2.chbox.jp/read.php?url=http://tmp6.2ch.net/test/read.cgi/download/1170602478/all

451名無しさん:2007/04/12(木) 20:36:38
アンカーもurlリンクのも変換できました。
向こうの652殿ありがとうです。◆/vmukiyuzw殿も <(_ _)>

452451、445:2007/04/12(木) 21:19:02
『snapshotのスレをdat化する試みについて』
更新されたんですね。(仕事早いなぁ)

更新されたのをコピペして新たにdat化しました。
ありがとうです。

453名無しさん:2007/04/17(火) 11:05:38
いつも便利に使わせていただいております

subject.txtの作成機能なのですが、>>237の2の場合で
当方不精なのもので、フォルダに関係の無いdatファイルが散らばっていることが多々あります
そこでアップロードしたサイトのディレクトリにあるdatから
subject.txtをローカルに生成するようなことはできますでしょうか

subject.txt生成機能自体が、メインでないとは存じますが
よろしければお願いします

454 ◆/vmukiyuzw:2007/04/17(火) 20:23:19
>>453さん
うーむ、ちょっと難しい・・・
というのは、httpのプロトコルでは特定のサイトのディレクトリにある
ファイルの一覧を取得する方法が基本的にはないのです。
(http://なんたらかんたら/*.dat みたいにワイルドカードみたいなのは
使えないですよね)

で、ftpのプロトコルであればファイル一覧を取得できると思うのですが
htmltodatに付けようと思うとけっこうな改造になってしまう上、
労多くして実り少ないというか・・・

というわけで適当なftpツールでローカルにダウンロードして
subject.txt作成して頂く、というあたりで手をうってもらえないでしょうか。
(あ、「アップロードしたサイト」という文言から、ftpでのアクセスくらいは
許可されているはずと勝手に解釈して書いてますが、そうでなかったら
すいません)

455名無しさん:2007/04/18(水) 15:24:18
いつもお世話になっております。

このスレ
http://www.geocities.jp/log_matome/log/o7/1143077159.html

をdatにしたいのですが正規表現の一覧のどれを使っても変換できません。
「1行が長すぎるか正規表現が正しくないようです」と出てしまいます。
read.cgi7.00?ですと、変換は始めるのですがなかなか進まずそのうち固まってしまいます。
変換方法を教えていただけないでしょうか。

456名無しさん:2007/04/18(水) 16:33:52
>>455さん
dat2htmlの形式が微妙に変更されているようですね。
あわせてDAT2HTML2.6の正規表現を以下のように変更してみました。

m#<DT>(?:<A.*?>)?([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>) :(.*?)<DD>(.*)<BR><BR>#mik

一応、以前の形式とも互換性を取れるようにしたつもりです。


>mukiyuさん
ほんの出来心で>>443を真似させて頂きました
ごめんなさい怒らないで下さい

457 ◆/vmukiyuzw:2007/04/18(水) 20:17:53
DAT2HTML0.32gというとこにデジャヴを感じたので、過去ログを探して見ると
>>151-152,>>173で出ている話題ですね。
おそらくDAT2HTML0.32限定の問題と思われますが
>>456さんの正規表現だとどちらでも対応できるのでこの方が良いですね。

> ほんの出来心で>>443を真似させて頂きました
真似されて困るほどオリジナリティのあるレスを書いてるとも思わないので
怒らないでくださいとか言われてもそもそも怒りようもないというか
逆に回答レス付けていただいて感謝するのみです。

458455:2007/04/19(木) 00:24:34
>>456-457
迅速な対応ありがとうございます。
無事変換できました。
本当にどうもありがとうございました。

>>457
以前に出ていたものだったのですね。すみませんでした。

459 ◆/vmukiyuzw:2007/04/19(木) 01:00:43
>>458
> 以前に出ていたものだったのですね。すみませんでした。
いえ、確かに既出の話ではありますが、2年近くも前の話でもありますし
そもそものんびりやってるスレなんで、私としては「過去ログ読め」とか
言う気は全くないのです。たまたま思い出したので書いただけで。

で、以前に出ていたもの(>>151-152)よりも>>456のもののほうが
汎用的で優れていると思うのでこちらのほうがお勧めだと思うのです。

460名無しさん:2007/04/19(木) 19:11:05
こっちに書いとくです

http://ex20.2ch.net/test/read.cgi/gline/1175735168/77で出た
http://2ch.pop.tc/log/06/09/28/1555/1095611913.htmlのdat化もさせるようにすると
下のようになるのではないかと思うです

m#<DT>(?:<A.*?>)?([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>) ?:(.*?)<DD>(.*)<BR><BR>#mik

461 ◆/vmukiyuzw:2007/04/20(金) 00:58:25
>>460さん
この正規表現はDAT2HTMLの最新版(現時点では0.33hかな)に対応したもので
かつ以前の形式とも互換性が取れるようになっているものですね。
わざわざありがとうございます。

しかし変わった点は日付欄の前の全角コロンの前の半角スペースの有無だけですか。
htmltodatサイドから見るとこういう細かい変更を都度キャッチアップしていくのはとても
面倒なのですが、それはあくまでもこちら側の都合なのでどうしようもないですね。
なるたけ変更に強いような正規表現を書けるよう精進するしかないかな・・・

462名無しさん:2007/04/24(火) 04:22:38
すみません。2ch DAT落ちスレ ミラー変換機 ver.4
の、その23の変換はどのようにやれば良いのでしょうか?

463663 ◆fnwcOWFi56:2007/04/24(火) 08:21:38
>>462さん
デスクトップ2ch(http://2chsearch.info)のdat化は下記でどうでしょう

例:http://www.2chsearch.info/?s=old&amp;b=news4vip&amp;d=1174091695

受信オプション→HTTPヘッダ
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

正規表現
m#<div.+?>([0-9]+) :<span.+?><b> ?(.+?)</b></span>\[(.*?)\] 投稿日:(.+?)<br><div.+?> ?(.+?) ?</div><br></div><br>#mik

前処理
s#(<title>)デスクトップ2ch:.+?:(.+?</title>)#$1$2#ik

変換結果式
メール欄逆転


これで出来ると思いますが留意点が二つ。

1 User-AgentからPCか携帯かを判別しているようで、
 上のHTTPヘッダを付けないと携帯用ページ(40までしかない)を返してくるようです。
 なのでUser-Agentを忘れないようにして下さい。

2 上の例だとレス1が 「(コピペ略)」というリンクになっていますが
 dat化してもそのままです。
 これはどうしようもないので各自で何とかして下さい(リンク先等を見て)。

464 ◆/vmukiyuzw:2007/04/24(火) 22:29:16
>>463 いつもありがとうございます。

ちょっと気になったのは名前欄に関してですが、VIPやニュー速の
ランダム名無しであれば細字になるはずなので前後に</b>,<b>がつくはずですが
このサイトではそもそも削除されているようですね。
前処理や後処理で加工するのも面倒そうですし、まああきらめるしか
ない感じですかね。

465462:2007/04/25(水) 13:54:46
ありがとうです。>>463
「(コピペ略)」は切り貼りでもします。

しかし『デスクトップ2ch』って変ですね。1001で終わりのスレで
1040まで出てくるし。途中に「(コピペ略)」が挿入されてるのかな。

466 ◆/vmukiyuzw:2007/05/16(水) 22:45:38
バージョンアップしました。(0.8.12)
 ・変換オプションの前処理・後処理で不要な改行が含まれているとエラーになる
  不具合を修正。
 ・前処理・後処理欄等の使い勝手を少し修正。
  マウスでしか選択できなかったのをキーボード操作で選択できるようにした。

今回はまあ細かい修正のみです。

一つ目は、読み込んだ行が空行かどうか確認せずに行の一文字目を参照していたために
アクセス違反が起きてしまうという初歩的なバグなんですが、コンパイル時点で
ワーニングもなく参照できてしまう言語仕様もどうなんでしょうねえというか。
責任転嫁するなよと言われそうですが。

二つ目は、一覧が表示されて矢印キーで選択してリターンキーで確定、みたいな
動作を想定していたのですが、これも言語仕様上矢印キーの時点でイベントが
発生してしまって思ったような動作にならなかったので、まあ多少小細工して
なんとかできるようになりました。
キーボード派の方やスクリプトで操作したい方に利用していただければ。

あと、>>442-443に関連して「jbbs過去ログ」、
>>455-456,460-461に関連して「DAT2HTML0.26」
の正規表現をそれぞれ修正しています。(regexps.txt上)
必要な方は申し訳ないですが自力でマージしてください。

467663 ◆fnwcOWFi56:2007/08/15(水) 16:32:29
要望です。
「スレッドタイトルを取得しない」オプションを付けて頂けないでしょうか。

一度に全レス表示出来ないスレッドをdat化する際、
「1-10」「11-20」「21-30」等でそれぞれdat化して連結させたいのですが
dat化する時、「1-10」のもの以外にもスレタイが付いてしまいます。
それでは具合が悪いので、スレタイが付かないようにオプションで付いていたら
有り難いです。
具体的には下記とかで。

http://yy14.kakiko.com/test/read.cgi/mirror/1186175383/19-20n

以上、御検討の程 宜しくお願い致します。

468 ◆/vmukiyuzw:2007/08/16(木) 02:01:09
>>467
スレタイが付くというのはdatの行最後(5フィールド目)に付くという意味ですよね?
1-10以外(というか実際には1だけですけど)のものにスレタイがつくと何か問題あるのですか?
確かにdatの形式としては不正だとは思いますが、大抵の2chブラウザでは読み飛ばして
くれると思うので実害はないと思うのですが。

問題あるのであれば後処理で削るという手があると思います。
5番目の<>と\nの間を削ればいいんじゃないでしょうか。
というわけでオプションで機能追加しないといけない必要性がよくわからないです。

469 ◆/vmukiyuzw:2007/08/16(木) 02:26:04
>5番目の<>と\nの間を削ればいいんじゃないでしょうか。
4番目の間違いでした

470663 ◆fnwcOWFi56:2007/08/18(土) 18:21:44
>>468-469
その通りで実害はなかったので>>467の件取り下げさせて下さい。
失礼しました。


で、別件の要望です。(毎回すみません)


datへの一括変換時に、同名ファイルが存在した場合
現状では「上書き」「保存しない」の二つだけなのですが
「別名で保存」というような選択肢を加えて頂けないものでしょうか。

例えば「1234567890.dat」が存在していた場合は
「1234567890[0].dat」で保存、というように。

471663 ◆fnwcOWFi56:2007/08/18(土) 18:43:58
この機能が欲しい理由ですが
携帯用ページのスレッドをdat化したい時に
あったらラクだなと思ったもので。

http://www.geocities.jp/mirrorhenkan/2ch-i/

上記のページで書いたのですが
「1-10」「11-20」[21-30」等でしか表示出来ない携帯サーバの場合
それぞれのファイルをDLして
datに一括変換させて(ファイル名はそれぞれのレス1の日付からリネーム)
別個スクリプトでファイル名からソートしたテキストファイルを作成して
そのテキストファイルを元に連結すればdatになるのですが
秒数まで表示しないスレッドでなおかつ流れが速いものの場合
同名ファイルが幾つも出てきてしまうです。
例えば下記とか。

http://live.2ch.net/test/read.cgi/endless/1035922530/

これの2ch-imodeでのミラーはこちら

http://2ch-i.net/&amp;/live.2ch.net/endless/1035922530/

これなどはレス数が640なので64個のファイルをDLして変換結合するのですが
同名ファイルになってしまうものが4つ出てしまうので困ってしまうのです。
レス1の日付から生成したファイル名でソート結合していますので
オリジナルファイル名.datでやるのは却って大変です。

で、同名だった場合に「別名で保存」オプションがあったら
例えば
「1234567890.dat」と「1234567890[0].dat」の比較処理等が実に簡単になるのです。


以上のような理由がありますので
一括変換の際の「別名で保存」オプション(名前はどうでもいいのですが)
を、是非実装して頂けたら実に嬉しいです。

472 ◆/vmukiyuzw:2007/08/18(土) 22:15:34
まあ難しい話ではないですがこれもいまいち実装するほどのことかなとの
感が否めないです。
自分がやるなら、元ファイルをソートできるようにリネームするアプローチを取るかな?
せっかく「1-10」「11-20」と連番が付いているのですし
最終的にはスクリプトでソートする意図のようなので
そのまえにスクリプトで数字の桁数をそろえてしまえばいいのでは?

473 ◆/vmukiyuzw:2007/08/18(土) 22:50:20
ところで、2ch自体でもそうですが
「1-10」が「0001-0010」となっていてもアクセスできますよね。
(まあCGIがそう働いてくれてるだけのことですが)
であればローカルのファイルをリネームするよりURLの一覧のほうを
そう変えてしまうほうがより簡単かもしれませんね。

474名無しさん:2007/08/25(土) 15:09:43


475名無しさん:2007/09/16(日) 18:48:48
御返事遅れて申し訳ないです
>>471のページの方法で何とかなったと思うです。

さて、早速なのですが
下記3つのhtmlにマッチする正規表現を教えて頂けないでしょうか。

http://●.sarashi.com/htmltodat/1187190494.html
http://●.sarashi.com/htmltodat/1165245437.html
http://●.sarashi.com/htmltodat/1137198532.html


メール欄が日付(+ID)の右にあり、どうもマッチしないです。
下のような正規表現を考えてみたのですが

正規表現
m#<hr>([0-9]+):(.+?):(.+?)(?:\[(.+?)\])?<br>(.*?)(<hr>)#mki

前処理
s#(<title>)29-(.+?</title>)#$1$2#ik

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

メール欄が無い場合にはマッチしないのです。
どこがよくないのでしょうか?

また、前処理でまだ色々やらなければいけないと思うのですが
とりあえずスレッドタイトルだけつけてみたら
どうも機能してないみたいです。
どこがまずいのか教えて頂けないでしょうか?

476名無しさん:2007/09/16(日) 18:49:58
>>475で出したURLですが
「●」を「mirror」に変えて読み出して下さい。

477 ◆/vmukiyuzw:2007/09/17(月) 00:11:24
変換結果式を入れなければ(順番はおかしいですが)正しく変換されるので
変換結果式の処理にプログラム側にバグがあるようです。
でもぱっと見た限りではどこがまずいのかわからない・・・
時間があるときに見てみますが、とりあえず変換結果式を使わず後処理で

s#(.*?)<>(.*?)<>(.*?)<>(.*?)\n#$2<>$3<>$1<>$4\n#igk

とかで対処できないでしょうか。
(やってることは変換結果式と同じはずなんですがなぜ結果が異なるのか
まだわかりません)

なお、NGワードは設定していないので伏字でないと書けない理由はわかりません。

478 ◆/vmukiyuzw:2007/09/17(月) 01:00:39
原因はわかりました。
変換結果式で変換するときも内部的にはsコマンドで変換しているのですが
$4はふつう日付ID欄で空白なことはないだろってことで(.*?)でなく(.+?)にしてました。
しかし$4にメール欄(空欄あり)がきてしまったのでマッチしなかったようです。
まあ次の機会にでも修正します。ちょっと副作用が怖いですが。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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