まず最初に言っておくことは、知らんやつのexeなんてホイホイ実行するものではありません

で、一応自分の2ch的素性を公表しておきます。全部は言わないけどね。
まあ、来た人は知ってるかもしれませんが、 投票所の住人で、得票推移フラッシュとか作ってます。
あとはトナメ関係であちこちでなんかやってたりしてます。
これくらいの情報でexeを実行するかどうか決めろというのもなんですが、決めてくださいw

さて公開するツールですが、第二回全板の時から個人的に使ってるスクリプトに、GUIを適当に付けて、exeにまとめたものです。
rubyで作っています。なので、ruby環境のある人はrubyのスクリプトを、中身確認の上、実行してもいいと思います。
だけど、覗かれるの恥ずかしいな。かなり適当です。GUIの作り方よくわからんのですよ。動けばよし。

●更新

2009/01/01のバージョンからconfig.txtの仕様が変わりました。
なので以前のやつを使う場合は気をつけてください。つうか前のは使えません。
中身見たら分かると思いますけど、5行目と6行目に作成日制限用の設定が入りました。

●このスクリプトの目的

ローカルにあるdatファイル(例えば投票スレ)から目的の語句の入ったレスを書き出す。こんな感じ
抽出レスには、引用しやすいようにURLが付く。
検索文字は正規表現が使える。

●つかいかた

どこかに解凍して実行するだけ。
ただし、Windowsであること、datファイルはJane Styleのdatと互換性のあるもの。少なくともかちゅ〜しゃはだめですね。
自分が持っているdatファイルしか対象にはしません。ネットから引いてきたりはしませんから、Janeなりで取得しておくこと。

まずはdatの場所の設定をしてください。だいたいそれで準備はおk。
で、結果書き出しhtmlファイルを開いておいて、検索してhtml更新てな具合で使ってもらうのを想定してます。

datの場所指定:一番上の欄、datのある場所の指定が必要です。datボタンで選べます。

更新日制限: datの更新日を見て検索するファイルを絞り込みます。フォーマットは守ってね。
  まあ、当日の日付か、トナメが始まる日付くらいがあればいいかなと思います。
  当然ですが、最近取得した古いファイルにも反応してしまいます。
  datファイル自体の更新日が、決められた日付以降なら検索対象にします。
  日付で絞りたいなら、検索文字列で絞ることもできます。
  todayボタンは、一番上の欄が今日の日付になります。

作成日制限:スレの立った時間(=スレのファイル名の数字)を見て、それ以前のファイルのみを検索対象にします。
  「〜○日間」となってるのは、更新日制限の日付から何日後までかを決めています。
  チェックを入れると機能が働きます。
  これは何ヶ月も前のスレを見て回ってると必要になってくるんですよね。対象が多すぎるのだ。

つまり検索対象ファイルの決定はこんな感じ。頭が更新日制限、後が作成日制限。

  dat更新日制限(日付)               スレ作成日制限(ファイル名)
     └─→        [検索対象ファイル]     ←─┘

  ファイルの中を覗かずに検索対象を絞れるように作ったんですけど、どうにもdat更新日制限が使いにくいですね。
  確実に対象日だけを拾いたい場合は、検索文字列に日付も入れて絞るのがいいかと思います。

スレッドタイトル:更新日の制限を突破したdatファイルのスレタイを見て、さらに検索対象ファイルを絞り込みます。
  投票スレだけを見るのなら、「全板人気トーナメント投票スレ 」のままでいいでしょう。
  これは正規表現がつかえます。

検索文字列:検索する文字列を入れます。
 正規表現が使えます。 いや、正規表現でないと思ったとおりに検索できません。
  このときの検索対象は、名前欄、時間、ID、本文です。ただしレス番は対象外。
  それらがベタッと続けて書かれたテキストの中から検索すると思ってください。
  正規表現は一応軽く説明しますが、本気で高機能なことをしようとするなら勉強してください。
  各欄の右の[Esc]ボタンは、正規表現で特殊な意味を持つものをエスケープするためのものです。
  正規表現を働かせたくなくて、見たままを検索したいときに使うために作りました。
  例えばAAの一部から検索しようとする場合に、意図せず | ( ) などの機能が働かないように文字列を変更するのに便利です。

検索ボタン:押すと結果をhtmlに書き出します。
  ただ書き出すだけなので、htmlを開いてあるなら更新をしなくてはだめです。
  html開いてないのなら開いて見てくださいな。

検索ボタンの下のテキスト枠:実行したときの様子が出ます。
  一応、日付やタイトル、検索文字列のチェックをしてエラーが発生したら表示しますが、万能ではありません。かなり適当。
  あるはずなのに「hit!」の表示が出ないときは 、多分正規表現が意図したとおりに書かれていないことが多いです。

書き出しhtml:書き出すhtmlを指定できます。私は書き出しhtmlをブラウザで開きっぱなしで、更新して見てます。
  で、もし保存したくなったら、ブラウザで保存させます。つまり、私はこれ変更してないです。

プレフィックス:結果htmlで各レスの上にURLが赤文字で書かれています。そのための追加文字です。
  投票ログを探るだけならそのままで平気です。投票所が移転しないかぎりは。
  レスURLを使う人で、投票所以外を対象に使う場合は変えたほうがいいでしょう。
  あと、もっと上のディレクトリから(例えば案内カテ以下の板をすべて)調べる場合は、
  嘘のURLを表示してしまいますから、役に立ちません。指定しないほうがましかも。

設定保存:設定保存します。config.txtっていうファイルに、順番決め打ちで設定を保存します。

終了:終了します。

●正規表現やら使い方のコツやら

基本的には検索したい文字列を入れるだけでいいんですが、正規表現で少し特殊な意味を持つ記号があります。
AAなどを検索文字列に指定するときによく問題になります。
以下説明で、「/」が両側に付いていたりしますが、これは正規表現だよって意味です。
実際に検索文字列欄に書き込むときはいりません。つか欄外に書いてあるでしょ。

意味を持つ記号でAAに出てきて注意が必要なもの(半角のときのみ)
 . * | ^ ( ) [ ] { } / \ $ ? +
これらが検索文字列に入っていたら、\を使って特別な意味を回避します。以下のように。
 \. \* \| \^ \( \) \[ \] \{ \} \/ \\ \$ \? \+
まあ、とにかくこれらの文字自体の検索は\をつけろと。
検索文字列設定の右の[Esc]ボタンで、特別な意味を回避した文字列に書き換えができます。

でもこいつらは使えるやつなのです。
"."(ピリオド)は、任意の1文字 という意味を持ちます。
"*"は、直前の文字の0回以上の繰り返しを意味します。
で、".*"で任意の文字がどれだけあってもヒットします。
例えば、
/擦.*三 三/
でチンコス拾ったりします。
"擦"と"三 三"の間にどんな文字がどれだけ入ろうとも、ヒットです。
アンド検索のように使えます。ただ、アンド検索と違って出てくる順番は固定になります。

"|"はAAで頻出です。とにかく"\|"にすること。
"|"自体の意味は、「or」です。
/(チ|マ|○)ンコス/
とかね。
"(" ")"は見たとおりカッコとしていろいろと範囲指定するのに使います。
顔文字でよく出るので"\"をつけて回避するのを忘れずに。

"[" "]"は、"[]"の中に列挙した一文字とマッチします。
/[チマ○]ンコス/

"\"はその後ろに付く文字により意味がいろいろあります。上に書いたように"\"により特殊な意味を打ち消すことも重要です。
"\d"は数字一文字を表します。
チンコスばかりでなく。
/20:1[45]:\d\d/
かなり大雑把ですが、20時14分台と20時15分台のタイムスタンプの付いたレスを書き出します。
だいたいエヴァのしょぼラシはここに入ってきます。
秒の部分は"\d\d"なので、数字が二つ続けばなんでもOKという意味になります。

 

あと、これは正規表現とは関係のない話ですが、実際はdatの中の"<"と">"は、"&lt;"と"&gt;"で格納されています。
なので、/&lt;&lt;投票所&gt;&gt;/で投票所への投票を引っ掛けるはずですが、スクリプトのほうで"<"→"&lt;" " >"→"&gt;" の変換をしています。
つまり、普通に
/<<投票所>>/
と書けば引っかかります。(←空白とか別名とか掛けたいならちょっと工夫が要ります)
副作用としては、<br>を引っ掛けることが出来ないなどありますが、重要じゃないよね?
もうね、よく使うので面倒になってスクリプトで面倒見ることにしました。

 

以上、何度も言うけど、面白い投票があったら、投票所の勝手に今日輝いていた投票レス大賞に報告な。
あと、このスクリプトの話とかは、グラフフラッシュのサイトのBBSで聞きます。輝スレには書かないこと。俺のスレじゃないんだし。

●ダウンロード

exe版

ruby版

もどる

inserted by FC2 system