初Plaggerです。試してみました。
ゴールは、FFXIの集団対モンスター戦であるビシージで、いつどのモンスター軍が攻めてくるかを報告ベースで予想時間を表示してくれるビシージ状況報告ページです。
下準備
- TiarraをTopiaさんの開発ツリーのものにupgrade
- general.control-socket-name を適当に設定
- 設定ファイルから System::SendMessage を有効化
- id:Seacolorさんのところから、CustomFeed::Configを取得
ffxi_besieged.yaml
global: assets_path: assets timezone: Asia/Tokyo user_agent: agent: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" log: level: debug cache: expires: 60 plugins: - module: Subscription::Config config: feed: - url: "http://besieged.hp.infoseek.co.jp/cgi-bin/svr_stat.cgi?svr=0" - module: CustomFeed::Config - module: Filter::Rule rule: module: Deduped path: cache/ffxi_besieged.tmp compare_body: 1 - module: Notify::Tiarra config: socketname: bot channel: #example use_notice: 1 - module: Publish::Gmail config: mailto: nekoruri@example.jp mailfrom: nekoruri@example.jp mailroute: via: smtp host: localhost
assets/plugins/CustomFeed-Config/ffxi_besieged.yaml
match: http://besieged\.hp\.infoseek\.co\.jp/cgi-bin/svr_stat\.cgi\?svr=\d+ extract: "<th class=he2>([^<]*)</th>[ \r\n]*<td class=td_(?:up|now)_num>([^<]*)</td>[ \r\n]*<td class=td_(?:up|now)_str>([^<]*)</td>" extract_capture: title count date extract_after_hook: $data->{title} .= ' ' . $data->{count} . ' (' . $data->{date} . ')' extract_after_hook: $data->{body} = $data->{title}
syntax hilight
って?Gだけだったんですね……。
追記: body
IRCへの通知がメインなのでbody気にしてなかったんですが、なんか更新時の通知がうまくいってないようなので、とりあえずbodyにも入れてみました。これでどうかな……。試行錯誤。