otsune's SnakeOil RSSフィード

python -c "print''.join([chr(x) for x in 111&1101,110+~-~11,10^11*11,110+~-~11,-~101,-~11^11*11,~-110,111&11*11,11+11+10,11|~-0110,1-~11^11*11,10^11*11,-~11^11*11,110,101])"

2006-06-10

自動アンケート+ とCustomFeed::Simpleを組み合わせたら……

 自動アンケート+ とCustomFeed::Simpleを組み合わせたら…… - otsune's SnakeOil  を含むブックマーク はてなブックマーク -  自動アンケート+ とCustomFeed::Simpleを組み合わせたら…… - otsune's SnakeOil   自動アンケート+ とCustomFeed::Simpleを組み合わせたら…… - otsune's SnakeOil  のブックマークコメント

こんな感じのconfig.yamlでテストしてみたら

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://www.zianplus.net/cgi-bin/vote+/list.cgi?lm=30&h=0&r=0
          meta:
            follow_link: /htm/\d+\.html
  - module: CustomFeed::Simple
  - module: Filter::EntryFullText

自動アンケートのhtml

<DT>
<FONT size=5><A HREF="./htm/1149960069.html" target="_blank"></A></FONT> 
<FONT size=5><A HREF="./htm/1149960069.html">センスねえなあと思うものコン </A></FONT><FONT size=2>:<FONT COLOR="blue"> 6/11 02時44分</FONT>: 7投票<BR></FONT>
<DT>

こんな感じでtarget="_blank"のほうを拾っちゃうからtitleが「◇」というfeedになっちゃうな。

このあたりはCustomFeed::Simpleのfollow_linkで細かい正規表現が渡せるか、assetsでhandleしてオーバーライドできるようにするみたいな感じに?

miyagawaさんにIRCで聴いて、EntryFullTextを使って書き直してみた。

Filter-EntryFullText/zianplus_net.yaml

# CustomFeed http://www.zianplus.net/cgi-bin/vote+/list.cgi
author: Masafumi Otsune
custom_feed_handle: http://www\.zianplus\.net/cgi\-bin/vote\+/
custom_feed_follow_link: \./htm/\d+\.html
handle: http://www\.zianplus\.net/cgi\-bin/vote\+/htm/\d+\.html
extract: <TITLE>(.*?)\s</TITLE>.*?<HR><PRE><FONT SIZE=3>(.*?)<FORM METHOD="POST"
extract_capture: title body

config-zianplus.yaml

include:
  - /home/otsune/plagger/config.base.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://www.zianplus.net/cgi-bin/vote+/list.cgi?lm=30&h=0&r=0

  - module: CustomFeed::Simple
  - module: Filter::EntryFullText
  - module: SmartFeed
    config:
      id: zian_plus
      link: http://www.zianplus.net/cgi-bin/vote+/list.cgi
      title: 自動アンケート+ 
  - module: Publish::Feed
    config:
      format: Atom
      dir: /home/otsune/public_html/plagger/feed
      filename: zianplus.atom

SmartFeedが無いとAtomがNo Titleになるので。

Filter::Regexp にarrayで正規表現を渡せるとプチ便利になるかも?

 Filter::Regexp にarrayで正規表現を渡せるとプチ便利になるかも? - otsune's SnakeOil  を含むブックマーク はてなブックマーク -  Filter::Regexp にarrayで正規表現を渡せるとプチ便利になるかも? - otsune's SnakeOil   Filter::Regexp にarrayで正規表現を渡せるとプチ便利になるかも? - otsune's SnakeOil  のブックマークコメント

要するにPublish::CHTML向けに

  • コメントタグ削除
  • scriptタグ削除

をやりたいんだけど

  - module: Filter::Regexp
    config:
      regexp:
        - s/<!(?:--(?:(?!--).)*--(?:(?!--)[^>])*)*(?:>|$(?!\n)|--.*$)//gs
        - s!<script[^>]*>.*?</script>!!gs

こんな感じのYAMLを渡せるかんじで。

追記: id:typesterさんのコメントによりブランチからFilter::HTMLScrubber を持ってきて使ってみることに。

コメントタグ除去とかもできるかどうかperldoc読んでみよう。

AppleCare の検索 http://docs.info.apple.com/ の野良AtomとEntryFulltextを作る

|  AppleCare の検索  http://docs.info.apple.com/ の野良AtomとEntryFulltextを作る - otsune's SnakeOil  を含むブックマーク はてなブックマーク -  AppleCare の検索  http://docs.info.apple.com/ の野良AtomとEntryFulltextを作る - otsune's SnakeOil   AppleCare の検索  http://docs.info.apple.com/ の野良AtomとEntryFulltextを作る - otsune's SnakeOil  のブックマークコメント

config-appledocs.yaml

include:
  - /home/otsune/plagger/config.base.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://docs.info.apple.com/article.html?artnum=75185-ja
          meta:
            follow_link: /article.html\?artnum=\d+
  - module: CustomFeed::Simple
#  - module: Filter::TruePermalink
  - module: Filter::EntryFullText
  - module: Publish::Feed
    config:
      format: Atom
      dir: /home/otsune/public_html/plagger/feed
      filename: appledocs.atom

Filter-EntryFullText/docs_info_apple_com.yaml

# Apple Support KB http://docs.info.apple.com/
author: Masafumi Otsune
handle: http://docs\.info\.apple\.com/article\.html\?artnum=
extract: <td id="kbcontent">(.*?)<td id="kbgutter">
extract_capture: body

コンテントネゴシエーションなので「Accept-Language: ja」を出さないと、英語ページが帰ってくるな……

アップル - サポート - TIL http://til.info.apple.co.jp/ の野良AtomとEntryFulltextを作る

|  アップル - サポート - TIL http://til.info.apple.co.jp/ の野良AtomとEntryFulltextを作る - otsune's SnakeOil  を含むブックマーク はてなブックマーク -  アップル - サポート - TIL http://til.info.apple.co.jp/ の野良AtomとEntryFulltextを作る - otsune's SnakeOil   アップル - サポート - TIL http://til.info.apple.co.jp/ の野良AtomとEntryFulltextを作る - otsune's SnakeOil  のブックマークコメント

config-appletil.yaml

include:
  - /home/otsune/plagger/config.base.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/wa/updateInfo
          meta:
            follow_link: showTIL\?id=\d+
  - module: CustomFeed::Simple
#  - module: Filter::TruePermalink
  - module: Filter::EntryFullText
  - module: Publish::Feed
    config:
      format: Atom
      dir: /home/otsune/public_html/plagger/feed
      filename: appletil.atom

Filter-EntryFullText/til_info_apple_co_jp.yaml

# upgrade Apple Support TIL Japan http://til.info.apple.co.jp/
author: Masafumi Otsune
handle: http://til\.info\.apple\.co\.jp/cgi-bin/WebObjects/TechInfo\.woa/wa/showTIL\?id=\d+
extract: <B>タイトル</B><BR>\n\s*<BLOCKQUOTE>([^<]*?)</BLOCKQUOTE>.*?Modified Date:</FONT></TD>.*?<FONT SIZE=1>(\d\d/\d\d/\d\d)</FONT></TD>.*?<HR>(.*?)<!-- START BOTTOM APPLE NAVIGATION -->
extract_capture: title date body
extract_date_format: %y/%m/%d
extract_after_hook: $data->{body} =~ s#</?t(?:able|d|r)[^>]*>|<object.*?</object>##s;

しかし今はTILよりも http://docs.info.apple.com/ のほうが全世界統一のドキュメント(らしい)

http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/wa/showTIL?id=303787

http://docs.info.apple.com/article.html?artnum=303787

は内容は一緒だったりする。

だから後者にTruePermalinkするという手もあるな。

chugoku-np.yaml 中国新聞のEntryFulltextをいじったが

|  chugoku-np.yaml 中国新聞のEntryFulltextをいじったが - otsune's SnakeOil  を含むブックマーク はてなブックマーク -  chugoku-np.yaml 中国新聞のEntryFulltextをいじったが - otsune's SnakeOil   chugoku-np.yaml 中国新聞のEntryFulltextをいじったが - otsune's SnakeOil  のブックマークコメント

# svn diff chugoku-np.yaml 
Index: chugoku-np.yaml
===================================================================
--- chugoku-np.yaml     (revision 956)
+++ chugoku-np.yaml     (working copy)
@@ -2,6 +2,7 @@
 # The site has Last-Modified header and thus no need to capture date
 author: Tatsuhiko Miyagawa
 handle: http://www\.chugoku-np\.co\.jp/.*\.html
-extract: <!----記事本文 はじまり----->\s*(.*?)\s*<!----記事本文 おわり----->
-extract_capture: body
+extract: <td width="100%" style="font-size:16px;"><b>(.*?)</b></td>.*?<td class="small" valign=top width=100%>(.*?)</address>
+extract_capture: title body

Google NewsRSSが元ネタだとすると、titleは省略できるのか。

しかし最近、はてなブックマーク注目URLみたいなメタRSS経由でEFTすることも多いからなぁ。

typestertypester2006/06/10 20:19> Filter::Regexp
feature-server ブランチに Filter::HTMLScrubber っていうのアップしてあります。
やりたいことはいちおうこれでできるはず。

トラックバック - http://subtech.g.hatena.ne.jp/otsune/20060610