: O. Yuanying

S.F.B.T-1 が売り切れたので通販ページの変更をチェックする

S.F.B.T-1 が売り切れたので通販ページの変更をチェックする Yapra スクリプトを書いた。

はてなアンテナでもチェックできると思うけど、変更があったらメールしたかったので、 久しぶりに Yapra を使ってみたよ。

pipeline:
  mfield_check:
    - module: Feed::Custom
      config:
        url: 
            - 'http://www.mfield-gk.com/shop.html'
            - 'http://www.example.com/another-page'
        extract_xpath:
          split: '/html'
          title: '//title/text()'
          content_encoded: '/'
        apply_template_after_extracted:
          link: '<%= binding.eval("url") %>'

    - module: Filter::Deduped
      config:
        path: /Users/yuanying/Documents/temp/cache/pragger/web_check

    - module: Filter::ApplyTemplate
      config:
        content_encoded: '<%= item.link %> が更新されました。'

    - module: Publish::Smtp
      config:
        smtp_server: mail.example.com
        port: 25
        mail:
          subject_prefix: '[更新] '
          from: 'mfield-check@example.com'
          to: 'yuanying@example.com'

Feed::Custom のところの、link: 'http://www.mfield-gk.com/shop.html' というハードコーディングをなんとかすれば、 url にリストを渡して複数のウェブサイトをチェックできるようになるなあと考えつつ、 Yapra 0.1.3 の構想を練る。

Yapra 0.1.3 をリリースして上記の問題を解決。 url パラメータに url のリストを渡してやればそれぞれすべてのページの更新チェックを行ってメールをしてくれるようになった。

最初はチェックするページの Last-Modified を比較すれば、 ページの変更を検出できるかなあと思ってたけれども、 どういうわけか、アクセスした日付を返してくれるので使えない。

と、言う事でゲットした html 全体を保存して比較することにしました。