2007年08月13日

レーサー集計 ver1.15

レーサー集計ver1.15

本バージョンより、砦取得現況表を正式サポートします。
砦取得現況表は、虹色想雫にある攻城速報@ろらじおのRuby版です。

ROと同時に使用してもROが強制終了されません。

デバッグを手伝ったり、ログをくださった方ありがとうございます。
改行(CRLF)や「#」がどのように働くか分かるようになったので、
対策出来ました。

今回頂いたログは、ろ++やRoCha!!でも改行がCR(\r)ではなくCRLF(\r\n)になっていました。
ですが、手元にある別のろ++やRoCha!!で作成されたログはCR(\r)が混じっていてこれは過去に対処済みでした。
今回はそれとまた違ったパターンのため、うまく見分けられませんでした。

ROサーバーでは、名前に"CRLF"がついた形式で名づけられてもクライアントに送られてくるのは"CR"だけだったのが今は"CRLF"そのまま送られるようになってきたのかな?
そうとでも考えないとわからないですね〜。
更新履歴: ver 1.15

  • 砦取得現況表(timetable.cgi)を正式サポート。

  • sample/にworld.rb/world.batを追加。

  • sample/のurdr.rb, sara.rbなどを削除。

  • ろ++やRoCha!!で改行が連続して複数ある時も正確に認識するように修正。

  • CRLFによる改行を、「#」による改行と勘違いしていたのを修正。

  • ドキュメントの攻城戦ログに特殊文字解説を追加。

  • ドキュメントのダウンロードリンク修正。

  • ドキュメントの連絡先メールアドレス修正。

posted by silica at 22:48| Comment(26) | TrackBack(0) | 攻城戦 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
world.rbが動いてくれません。
world.batを起動してのコマンドプロンプトには以下のように出ます。
D:\racer>ruby world.rb
コマンドの構文が誤っています。

デフォルトのworld.rbから変更したのは7行目のworldくらいです。logdirはそのままでいいとして、他に設定を書き換える所ってあるのでしょうか?
Posted by at 2007年08月17日 17:23
world.rb 25行目:
system("ruby #{path}/logconvert.rb #{path}/#{world}/tmp/timetable_#{today}.txt #{world}")

のtimetable_を、ろ++ならropp_に、RoCha!!ならrocha_に変えてみてください。
ログフォーマットは、ログに付けた拡張子で自動認識するのでその点に注意をお願いします。
後考えられる原因は、取っているログのファイル名が想定外の名前になってることです。
その場合は、ファイル名を教えていただければ対応版upします。

Posted by 冬物語の人 at 2007年08月17日 19:50
23行目の#{today_under}.txtが2007_08_12.txtではなくハイフンの無い20070812.txtを探しているようです。ハイフン無しのファイルを作って実行してみるとfortlist_20070812.txtとtime_20070812.txtがlogフォルダに作成されました。

23行目の#{today_under}.txtを#{today}.txtに書き換えてみると2007_08_12.txtを参照するようになりましたが、これは想定した動きなのでしょうか?
Posted by at 2007年08月17日 21:00
ハイフンは'-'(半角マイナス)です。
'_'はアンダースコアと言います。

設計の意図通りなら、today_underはアンダースコア'_'付きの日付です。

date.rbにてアンダースコアで区切った日付を返すymd_underメソッドを定義しています。

もし、today_underにアンダースコアが入っていなくて、todayのほうにアンダースコア入っているのなら.ymdと.ymd_underの返す内容を確かめていただけませんか?

例)print_ymd.rb:
require 'gvglib/date.rb'
p today.ymd
p today.ymd_under

↑これだけで実行日の日付をコマンドプロンプトに表示します。
Posted by 冬物語の人 at 2007年08月17日 23:58
Rubyライブラリを使った方がエラーわかりやすいみたいなので変更版をupしました。
それと、読み込ませるログフォーマットを変更しやすくしました。

http://winter.sgv417.jp/script/download/world.rb
Posted by 冬物語の人 at 2007年08月18日 00:22
racer/tmpフォルダではなくracer/world/tmpフォルダにログがコピーされるようにすると動いてくれました。
FileUtils.copy_file("#{logdir}#{today_under}.txt", "#{path}/#{world}/tmp/#{logfix}_#{today}.txt")

見た目正常にfortlistが出力されたのでいいのですが、コマンドプロンプトにはエラーが何個か出ました。

D:\racer>ruby world.rb
-- 攻城戦ログを読み込みました。
world/log/fortlist_20070805.txt は見つかりませんでした。
前回の結果を初期化して使います。
-- 砦名一覧を書き込みました。
-- テキスト(tab)形式でログを書き込みました。
-- ちゃっぽん形式(ChatPon2)でログを書き込みました。
./world/log/fortlist_20070805.txt は見つかりませんでした。
前回の結果を初期化して使います。
./gvglib/guildlist.rb:91:in `guildlist_fortlog_breakcount': undefined method `add!' for {}:Hash (NoMethodError)
from ./gvglib/guildlist.rb:90:in `each'
from ./gvglib/guildlist.rb:90:in `guildlist_fortlog_breakcount'
from D:/racer/racer.rb:284
from D:/racer/racer.rb:125:in `each'
from D:/racer/racer.rb:125
./world/log/fortlist_20070805.txt は見つかりませんでした。
前回の結果を初期化して使います。
./gvglib/guildlist.rb:91:in `guildlist_fortlog_breakcount': undefined method `add!' for {}:Hash (NoMethodError)
from ./gvglib/guildlist.rb:90:in `each'
from ./gvglib/guildlist.rb:90:in `guildlist_fortlog_breakcount'
from D:/racer/racer.rb:284
from D:/racer/racer.rb:125:in `each'
from D:/racer/racer.rb:125
./gvglib/guildlist.rb:162:in `guildlist_fortlist_breakcount': undefined method `add!' for {}:Hash (NoMethodError)
from ./gvglib/guildlist.rb:161:in `each'
from ./gvglib/guildlist.rb:161:in `guildlist_fortlist_breakcount'
from ./gvglib/guildlist.rb:160:in `each'
from ./gvglib/guildlist.rb:160:in `guildlist_fortlist_breakcount'
from D:/racer/history.rb:87
from D:/racer/history.rb:58:in `each'
from D:/racer/history.rb:58
攻城戦ログ ./world/log/time_20030831.txt は存在しません。
[中略]
攻城戦ログ ./world/log/time_20070805.txt は存在しません。
world/log/fortlist_20070805.txt は見つかりませんでした。
前回の結果を初期化して使います。
./world/csv/breakfort_20070812.csv が存在しません。
./gvglib/log.rb:469:in `initialize': No such file or directory - ./world/csv/breakfort_20070812.csv (Errno::ENOENT)
from ./gvglib/log.rb:469:in `open'
from ./gvglib/log.rb:469:in `log_read_csv_fortlist'
from D:/racer/makelink.rb:170
from D:/racer/makelink.rb:130:in `each'
from D:/racer/makelink.rb:130
Posted by at 2007年08月18日 12:56
Gvログ取り用のセカンドPCでworld.rbを実行してみたらこちらではエラーが何も出ずに正常に出力・終了しました。2台のPCは環境が違っているのでそれが原因でしょうか。先ほどのエラーの件はもう原因追及しなくても当方は困らないので取り下げさせて貰います。rubyをファーストで動かすことが基本的に無い為。

ちなみに2台の大まかな差異は、
ファースト
XP、ActiveRuby

セカンド
w2k、ruby 1.8.6-p36
Posted by at 2007年08月18日 13:42
guildlist.rbのエラー、ということは
そちらの手元にある無事動く方のguildlist.rbをエラーが出てる方へコピーすれば大丈夫です。
または、今置いてあるファイルは修正済みなので、それを取ってきて上書きするでもokです。

実は、guildlist.rbは集計のパッケージを作って出したものの、再確認したらエラーだったので慌てて差し替えたものです。

確認の詰めが甘くて済みません。
これがうまく行ってworld.rb以外問題がないようなら、1.15のうちworld.rbだけ直したものをアップしなおします。
Posted by 冬物語の人 at 2007年08月18日 14:52
正常稼働を確認致しました。お疲れ様でした。
これでほぼ全自動の環境が構築でき大変便利になりました。ありがとうございました。
Posted by at 2007年08月18日 15:10
こちらこそありがとうございました。
おかげさまでレーサー集計の見つけられなかった欠陥を一杯見つけることができました。

world.rbはfortlist.txtだけでなく他に色々な集計も作成してくれるので、最終結果確認に使うこともできます。
Posted by 冬物語の人 at 2007年08月18日 20:04
初めまして、便利に使わせていただいています。ありがとうございます。

makelink.rbの動作で報告です。

当方使い始めたばかりなので、ログが溜まっていない状態です。

で、最新ログ以降のindexを吐きだし、と思って

ruby makelink.rb 20071118 0 idun time htmllink

と、しましたら、

makelink.rb:81: undefined method `[]' for nil:NilClass (NoMethodError)
from makelink.rb:77:in `each'
from makelink.rb:77

怒られました。

とりあえず、5週前からの吐きだしで、

ruby makelink.rb 20071021 0 idun time htmllink

としたところ、問題なく吐き出されました。

が、

吐き出された/idun/index.htmlの
「最近十週」のテーブルで
2007/11/18から2007/10/14まで表示された次行に
再度、2007/11/18からのリンクが表示されます。

サイトへのUp前にテーブルを編集したり、また、ログが溜まれば全く問題無くなり、当方でも別に困っているわけでは無いのですが、念のため報告をば。

当方の使い方が間違っていたり、環境がおかしいかも・・・。もしくは私の頭がおか(r。

WIN XP Pro Ver2002 SP2
ActiveScriptRuby 1.8.5.2
Posted by at 2007年11月21日 16:33
新規で1週間目から集計して調べてみた結果、history.rbの過去三週履歴とmakelink.rbの10,8,5,4回の所が
それより少ない回数での処理を考えていませんでした。(エラーはその回数処理の部分です)
いつもたくさんのログを相手に処理していたのでこの基本的な
部分にずーっと気づいでいませんでした。
10回未満で使いたい場合は、この2ファイルを別にすればちゃんと動くと思います。

・history.rbは過去砦取得履歴を取り出してhtmlにするためのスクリプトです。
・makelink.rbは商業値計算とindex.htmlを作るためのスクリプトです。

これからはROすらもほとんど接続出来ない日々が続くので、修正については何ともいえません。
本当に何にもできなくて済みません…。
Posted by 冬物語の人 at 2007年11月21日 22:27
早速のレスありがとうございますっ。

なるほどです。内容については了解しました。

このソフトのおかげでいろいろな集計がぱぱっとできて、非常に感謝してます〜。
Posted by at 2007年11月22日 10:28
応急処置です。
lydia.rbなどの鯖別処理スクリプトファイルをコピーしてidun.rbにしている場合、

history = "20070918" # 地域別歴史の開始日付
makelink = "20070918" # 全一覧表の開始日付

ここの日付を集計開始する日付から10週前にセットすれば問題なく実行できることを確認しました。

これでindex.htmlとhistory関係のファイルもできると思います。
Posted by 冬物語の人 at 2007年11月29日 00:22
ああっ、すみません確認遅くなりましたっ。

検証ありがとうございます。
また、試してみます〜。

なんとなく、集計を公開し始めたらレースが盛り上がったような気がします。

素敵なスクリプト、重ね重ねありがとうございましたー。
Posted by idun集計の人 at 2007年12月11日 01:46
idun 黄ばみ集計、引越ししましたのでお知らせします。
http://idun.es.land.to/
になりました。
Posted by idun集計の人 at 2008年06月30日 09:30
報告ありがとうございます。
早速修正させていただきました。
Posted by 冬物語の人 at 2008年07月06日 23:36
はじめまして。
攻城速報@ろらじおのSE対応版をDLさせていただいたのですが、
不具合がありましたので報告を。

今日使ってみたところ、ヴァルフレイヤ砦の落城ログが反映されませんでした。
ニダヴェリール砦の方は大丈夫だったのですが…

お手数ですが確認していただけたら幸いです。
Posted by surtの人 at 2008年11月30日 23:31
報告ありがとうございます。

ニダヴェリール砦とヴァルフレイヤ砦の名前を修正した物を以下にアップしました。

"攻城速報@ろらじお " v1.17-silic1.4
http://winter.sgv417.jp/script/download/gvgf_silic_pl.txt

もし、以上でもだめな場合、以下の修正:
['F', 'Valfreya Guild', "$mapdir/valfreya.jpg"]

['A', 'Valfreya Guild', "$mapdir/valfreya.jpg"]

上の行を'F'→'A'にしてみると良いかもしれません。
(元のスクリプト作者はヴァルフレイヤの略称を'A'とすることにしたようです。)
Posted by 冬物語の人 at 2008年12月02日 20:46
レスありがとうございます。
こちらでも再度見直していたのですが、
ヴァルフレイヤの落城情報が全部ヴァルキリーレルムの方に拾われていました。

そこで元ログ(txtの方です)の砦名の頭を無理やりFに変更してみたところ、
([Valfreya Guild 1]→[Falfreya Guild 1]と変えてみた)
今度はヴァルフレイヤ砦の落城に反映されました。

あと、前のレスにあったF→Aの変換で試したところ、何故かエラー扱いになってHtmlが作れないという結果になりました。

読みづらい文章で済みませんが、以上報告です。
Posted by surtの人 at 2008年12月02日 21:42
元ログはどの形式でしょうか?
元スクリプトがサポートしているのはろ。/RoFX/ChatPon/RoLoggerの4種類があります。
それと、ログファイルの一部をいただけないでしょうか?
こちらでテストして同じように再現するかを見てみたいです。
Posted by 冬物語の人 at 2008年12月03日 22:10
すみません、返信遅くなりました。
使用しているのはろ++です。

ログファイルについてですが、既に一部手を加えてあるものしか残っていないのですが、
下のURLからお願いします。

http://surtgv.hp.infoseek.co.jp/cgi-bin/src/up0302.txt

(鯖板用あぷろだのURLです。)
Posted by surtの人 at 2008年12月08日 18:37
何度もすみませんが、
上のURLは直リン不可のようなのでURLコピペで確認お願いします。
Posted by surtの人 at 2008年12月08日 18:39
ログありがとうございます。
それで試したら再現しました。
おかしくなる部分も分かりましたので今修正テスト中です。
影響が彼方此方に効いてるのですぐ直せなくて済みません。
Posted by 冬物語の人 at 2008年12月09日 21:11
修正が終わりました。
パッチレベル5としてアップしました。

http://winter.sgv417.jp/script/roradio.html
http://winter.sgv417.jp/script/download/gvgf-pl.zip

今回からパッチ適用済みを配布します。
(ニダヴェリールとヴァルフレイヤの画像も自動適用されます)

今後何かありましたらまたどうぞー。
Posted by 冬物語の人 at 2008年12月09日 23:32
書き忘れ。
nPro廃止に伴い、Perl版を同時実行してもROクライアントが落ちなくなったのを確認しました。

今後は別PCで実行させなくても大丈夫そうです。
Posted by at 2008年12月10日 00:04
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/51288150

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。