AmazonWishlistCalendar というWebサイトを作った

サイトの説明はサイトに全て書いたのでそちらを参照してほしい。

Amazon Wishlist Calendar - ほしい物リストをカレンダーに


ということでサイトに書かない話をここに書く。


作った目的

ゲームから長らく離れてた中、昨年(2015)のスプラトゥーンからゲーム熱が再燃し始めた。
しばらくはゼノブレイドクロス、Fallout4、GTA5 などメジャーなタイトルを遊んでいたけど、2016年秋はPS4でいろいろ発売されるのでカレンダーにでも登録しておくかという気持ちになった。
で、どうせ Amazon で買うことだし、なんかしらの登録した情報がカレンダーと連携できればいいのにと考えていたのが発端。


あとはドミノ式に要件を固めていった。

  • 予約まではしないソフトもあるのでほしい物リストと連携したい
  • お金をかけずに運用したい
  • カレンダーとの連携は iCal あたりで
  • 発売をスルーした場合にも後で教えてもらえるように RSS フィードが欲しい
  • どうせなら発売前も RSS フィード流れてほしい
  • RSS フィードにアフィリエイトリンク貼ってアフィ長者目指そう


使用技術

iCal, RSS フィードは URL 見ると分かる通り AWS S3。
S3 のコンテンツは初回登録時と以降は毎日スケジューラで lambda の NodeJS スクリプトをコールして生成している。
そのため発売日の変更があれば翌日には更新される。FF15 の発売日は無事更新されていた。
ほしい物リスト自体は DynamoDB に保存する。
DynamoDB ってキーワード見かける度にスプラトゥーン思い出す。

コンテンツは小さいし、スクリプトの実行回数も小さい。
カレンダーや RSS リーダーが極端にアクセスしないかぎりは S3 の通信も小さいので大したコストにはならないはず。


lambda のデプロイは apex を使った。
初見だからか lambda の制約で起きる問題にぶつかることが多く、さくっとデプロイできる体制は大事。
みんなどうしてるんだろう。
gulp とかを組み合わせてビルド、デプロイするのかな。
面倒で1ファイルに書いてしまった。


最後に

アフィ長者になる夢は残念ながら崩れてしまった。
Amazon に問い合わせたところ、AmazonWishlistCalendar はアプリケーションなので、Amazonアソシエイト・プログラム参加要件 の6に該当するため、ダメだということ。
今どきブログのRSSにアフィがあることもあるしいけるでしょと思ってたけど甘かった。


ちなみにデバッグで使った僕のほしい物リストこちら


ペルソナ5 [PS4]

ペルソナ5 [PS4]