Hatena::Groupfragments

甘くておいしいおイモだよー このページをアンテナに追加 RSSフィード

2006-10-07

太洋社コミック発売一覧のCustomFeed-Config 03:03 太洋社コミック発売一覧のCustomFeed-Config - 甘くておいしいおイモだよー を含むブックマーク はてなブックマーク - 太洋社コミック発売一覧のCustomFeed-Config - 甘くておいしいおイモだよー

最初はまんがの森新刊コミックリストのを作ろうと思ったけど,結局切り出しが楽な太洋社コミック発売一覧の方を作った。「発売日・出版社順(リスト)」および「出版社・発売日順(リスト)」のページからフィードを生成する。ただし一部のコミックについてはデータが上手く切り出せない(後述)。

まず,作者と出版社のデータを有効活用したいなあと思ったので,Seacolor's Labs.さんのP::P::CustomFeed::Configを改造し,authorとtagsが使えるようにする。これには $feed->add_entry($entry); が書かれている行の直前に以下を追加する。

$entry->author($plugin->{extract_encoding}
    ? decode($plugin->{extract_encoding}, $data->{author})
    : $data->{author}
    ) if $data->{author};
if($data->{tags}){
    my @tags = $plugin->{extract_encoding}
        ? map { decode($plugin->{extract_encoding}, $_) } @{$data->{tags}}
        : @{$data->{tags}};
    $entry->tags(\@tags);
}

そしてCustomFeed-Config/taiyosha.yaml。コミックのタイトルと巻数がエントリのタイトルになる。作者名や出版社もタイトルに入れたければ,これを適当に改造すればOK。

author: SweetPotato
match: http://www\.taiyosha\.co\.jp/comic/comic\d{4}_list(?:date|han)\.html
extract: <li>((\d{2})/(\d{2})\x{3000}{2}(.*?)\x{3000}{2}(.*?)\x{3000}{2}(.*?)\x{3000}{2}\\(\d+)).*?</li>
extract_capture: body month day publisher title author price
extract_after_hook: |
    my $year = ($url =~ qr!http://www\.taiyosha\.co\.jp/comic/comic(\d{2})\d{2}_list(?:date|han)\.html!)[0];
    $data->{date} = Plagger::Date->strptime("%y%m%d", "$year$data->{month}$data->{day}");
    $data->{body} = "<div>$data->{body}</div>";
    $data->{tags} = [$data->{publisher}];

あとはtaiyosha.config.yaml。Publishはお好みのものを。Publish::iCalはなぜか手元に無かったので試せず。

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://www.taiyosha.co.jp/comic/comic0611_listdate.html

  - module: CustomFeed::Config

問題は,一部のコミックについて,巻数が作者名の一部として切り出されてしまうこと。

上記のCustomFeed-Config/taiyosha.yamlは,各レコードのカラムの順番は日付,出版社,タイトル(巻数),作者,価格で,それらがそれぞれ2個の全角空白で区切られていることを前提としている。

しかし一部のレコードでは,データ入力者の不手際によるのだろうか,タイトルと巻数の間に2個の全角空白が入っている(通常は1個)。2006年11月分 発売日・出版社順(リスト)については,例えば,

11/30  リイド社  ゴルゴ13  96  さいとう たかを  \500

というレコードが存在するが,ここから切り出されるtitleとauthorは

  • title: ゴルゴ13
  • author: 96  さいとう たかを

となる。解決策は今のところ思いつかず。誰かなんとかしてくれると嬉しい。

あと,毎月configのurlを書き換える必要があり,それがちょっと面倒かも。

# IT田みつほバトンどうもです。あとでやります。

acqua_altaacqua_alta2006/10/07 03:33うわっ!あまりの対応の速さに驚きです!
感謝してもしきれません。ありがとうございます…。(つД`) 

あと、バトンは無理にとは言わないので(そろそろ旬を過ぎたような気もしますし…)。

SweetPotatoSweetPotato2006/10/07 04:14コメントありがとうございます。こんなのでよければ適宜カスタマイズして使ってやって下さい。
バトンについて,お気遣いありがとうございます。正直なところを言いますと,自分はネタが苦手な人間なのでどうしようかと思ってました(汗)。では失礼ながら,バトンのお気持ちだけ頂いて,バトンは地面に置かせていただきます。