SweetPotato::Plagger このページをアンテナに追加 RSSフィード

2007-01-14

[][] scraper for CustomFeed::Config MOON PHASE 03:01  scraper for CustomFeed::Config MOON PHASE - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  scraper for CustomFeed::Config MOON PHASE - SweetPotato::Plagger  scraper for CustomFeed::Config MOON PHASE - SweetPotato::Plagger のブックマークコメント

断片部から移動。元の記事は削除し,はてブでフォロー。

MOON PHASEを解析し,日付ごとにエントリ化する。

assets/plugins/CustomFeed-Config/moonphase.yaml

テキストの色をできるだけ再現するためにextract_after_hookで手入れ。

サイト構造の変化に合わせて正規表現を修正。

# author: SweetPotato
match: http://www\.moonphase\.cc/$
extract: (<table width="98%".*?<a name="#(.*?)"></a>(.*?)</font>.*?</table>)
extract_capture: body date title
extract_date_format: %y%m%d
extract_date_timezone: Asia/Tokyo
extract_after_hook: |
  $data->{link} = 'http://www.moonphase.cc/#%23'.$data->{date};
  $data->{body} =~ s!<font size="2">!<font size="2" color="#FFFFFF">!g;
  $data->{body} =~ s!<a(.*?)>(.*?)</a>!<a$1><font color="#66FFCC">$2</font></a>!gs;

config.moonphase.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://www.moonphase.cc/
  - module: CustomFeed::Config

[][] upgrader for EFT ヤマカム 02:41  upgrader for EFT ヤマカム - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  upgrader for EFT ヤマカム - SweetPotato::Plagger  upgrader for EFT ヤマカム - SweetPotato::Plagger のブックマークコメント

断片部から移動。元の記事は削除し,はてブでフォロー。

ヤマカムを解析し,記事ごとにエントリ化する本文を抽出する

断片部時代のコードを改良した。大分すっきりしたコードになったと思う。

断片部時代にはCustomFeed::Config用のassetsもあったけど,CustomFeed::Simpleで代用できることが分かったので掲載しない。

assets/plugins/Filter-EntryFullText/yamakam.pl

日付も抽出するようにした。

# author: SweetPotato
sub handle {
    my ($self, $args) = @_;
    $args->{entry}->link =~ qr!^http://www1\.odn\.ne\.jp/cjt24200/yamada/log/\d+/index\.html#\d+$!;
}

sub extract {
    my ($self, $args) = @_;
    my $hash = ($args->{entry}->link =~ /#(\d+)/)[0];

    return unless $args->{content} =~ m!(<TABLE width="450" cellpadding="10" cellspacing="5">\s+<TBODY>\s+<TR>\s+<TD[^>]*><A name="$hash">.*?<B>(.*?)</B>.*?\n</TABLE>)!s;

    my ($body, $date) = ($1, $2);
    $date = Plagger::Date->strptime('%Y年%m月%d日', $date);
    $date->set_time_zone('Asia/Tokyo');

    return +{ body => $body, date => $date };
}

config.yamakam.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://www1.odn.ne.jp/cjt24200/yamada/
          meta:
            follow_link: /log/\d+/index.html#\d+
  - module: CustomFeed::Simple
  - module: Filter::EntryFullText
  - module: Filter::ResolveRelativeLink

[][] scraper for CustomFeed::Config OHP 01:33  scraper for CustomFeed::Config OHP - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  scraper for CustomFeed::Config OHP - SweetPotato::Plagger  scraper for CustomFeed::Config OHP - SweetPotato::Plagger のブックマークコメント

assetsを若干リファクタリング。

断片部から移動。元の記事は削除。

OHPを解析し,日付ごとにエントリ化する。

assets/plugins/CustomFeed-Config/ohp.yaml

# author: SweetPotato
match: http://picnic\.to/~ohp/$
extract: <A HREF="(diary/\d{4}/\d{2}[abc]\.htm#(\d{4}-\d{4}))">(\d+/\d+.*?)</A>([^\n]*)\n</P>\n(.*?)<IMG SRC="gray\.gif" WIDTH="100%" HEIGHT="3">
extract_capture: link date title1 title2 body
extract_date_format: %Y-%m%d
extract_date_timezone: Asia/Tokyo
extract_after_hook: |
  $data->{title} = $data->{title1}.$data->{title2};
  $data->{link} = 'http://picnic.to/~ohp/'.$data->{link};

config.ohp.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://picnic.to/~ohp/
  - module: CustomFeed::Config
  - module: Filter::ResolveRelativeLink

[][] scraper for CustomFeed::Config 最後通牒 01:28  scraper for CustomFeed::Config 最後通牒 - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  scraper for CustomFeed::Config 最後通牒 - SweetPotato::Plagger  scraper for CustomFeed::Config 最後通牒 - SweetPotato::Plagger のブックマークコメント

assetsを若干リファクタリング。

断片部から移動。元の記事は削除。

最後通牒フレーム内ページを解析し,日付ごとにエントリ化する。

assets/plugins/CustomFeed-Config/saigotsucho.yaml

# author: SweetPotato
match: http://www10\.ocn\.ne\.jp/~comic/top\.htm$
extract: <A name="(\d{8})">.*?<A HREF="(#\d{8})" TARGET="_self"><FONT.*?><B>(.*?)</B>.*?</TABLE>(.*?)<A HREF="#zakki" TARGET="_self">
extract_capture: date link title body
extract_date_format: %Y%m%d
extract_date_timezone: Asia/Tokyo
extract_after_hook: $data->{link} = 'http://www10.ocn.ne.jp/~comic/top.htm'.$data->{link};

config.saigotsucho.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://www10.ocn.ne.jp/~comic/top.htm
  - module: CustomFeed::Config