m2

あまとも ウォッチリスト最安値取得 pipe

Yahoo! Pipesあまとも のウォッチリストに登録しておいた商品の最安値を取得する pipe を書きました。

あまとも ウォッチリスト最安値
http://pipes.yahoo.com/miya2000/amatomo_watchlist_lowest_price

あまともでウォッチリストに商品を登録すると、価格変動があったときにメールが届くようになっているので、この pipe はあんまり必要ではありませんが、

  • RSSリーダーで読める
  • 最安値への変動だけ通知される(たぶん)

の点が有用かなと思います。

今回は subpipe にそれぞれ個別の機能を持たせてコンポーネント化し、それを統合する形で実装しています。組み合わせを変更したり、ちょっとした修正を加えることで、また違った pipe を作成することができるでしょう。*1

Amazon ECS ItemLookup wrapper
http://pipes.yahoo.com/miya2000/amazonitemlookup
asin から商品情報を取得。*2
あまとも ウォッチリスト
http://pipes.yahoo.com/miya2000/amatomo_watchlist
ウォッチリストに登録した商品の asin を取得。
あまとも 商品別価格変動履歴
http://pipes.yahoo.com/miya2000/amatomo_price_history
asin から あまともの価格変動履歴を取得。
あまとも 商品別価格変動履歴(最安値のみ)
http://pipes.yahoo.com/miya2000/amatomo_lowest_price
上記「あまとも 商品別価格変動履歴」から最安値のみを取得。

非常に苦労したのでひっかかった点などを記しておきたいのですが、とても文章としてまとめきれそうもありません。とりあえず今思いつくまま箇条書きしておきます。

  • pipes で出力される RSSRSS 2.0
  • pubDate を設定するときは pubDate をそのまま作るのではなく y:published を作る。
  • y:published は datetime 型なので Date Builder モジュールを使って作る。
  • Date Builder モジュールに渡す文字列は、例えば「2008-01-19 19:23:19 JST」のように最後に「JST」をつけておくと日本時間に合わせられる。
  • guid が全て同じ値になってしまって、全ての item が同一の扱いになっている場合は guid の値を空にする。y:id 要素が無いと自動的に付加されるので、「y:id.permalink = false」とかやって y:id 要素を作ればOK。
  • 前に言ってた「Loop + String Regex だと内容を変更していないのにもかかわらず毎回結果を更新してしま」うのは、Loop + String Regex モジュールを作り替えると収まった。

*1:例えばこの pipe では最安値だけ取得してますが、日付でソートするように変更すると、価格変動がある度に通知されるようにできます。

*2:そのまま使うと link には私のアソシエイトIDが付きます。どうぞご利用くださいw