[bash]AMAZONの商品が安くなったら起こして をシェルスクリプト化した
前回、Amazonで欲しい商品の最安値をワンライナーで取得しましたが、ロギングとメール通知を一撃でやっつけたいのでシェルスクリプト化しました。ソースはこちら。ライセンスはMITです。
■ 初期設定
メール通知用に、次の5つの変数に値を代入します。
MAILFROM=admin@example.com #メール送信元アドレス MAILFROMNAME="管理人: ぬるぽぽぽ" #メール署名に表示する名前 MAILTO=nullpopopo@example.com # メール宛先アドレス MAILTONAME="ぬるぽぽぽ" #メール本文に表示する宛名 MTA=mail.example.com #メールサーバー名
MTAとして動いているサーバーがあれば、MTAの変数はlocalhostでよいでしょう。プログラムの変更箇所は最低これだけです。
あと、ログ格納ディレクトリ(変数 LOGDIR)はDropboxの下に作るようにしているのですが、これじゃ都合悪い、という方はよしなに変更してくださいね。
■ 使い方
AmazonPriceChecker をPATHの通ったディレクトリ(例: ${HOME}/bin )に置いて実行権をつけてから、Amazonの価格比較ページと教えて欲しい価格の2つを引数に渡して実行するだけです。(これは前回と同じ)
試しに1000円以下だったらメール通知するようにして実行します。
AmazonPriceChecker "http://www.amazon.co.jp/gp/offer-listing/B0019JNU5I/ref=dp_olp_new?ie=UTF8&condition=new" 1000 1461571217 2016/04/25 17:00:17 B0019JNU5I http://www.amazon.co.jp/gp/offer-listing/B0019JNU5I/ref=dp_olp_new?ie=UTF8&condition=new [2CS] 黒松内 水彩の森(2L×6本)×2箱 1076
今回実行したときは1000円以上(1076円)だったので、ログ(と標準出力)に吐かれるだけでした。それでは2000円以下だったらメール通知するように引数を変えて実行してみましょう。
AmazonPriceChecker の実行時は価格のしきい値以下なので、メール通知されるようになりました。もちろんログにも記録されています。
試しに、マーケットプレイスに出ていない(Amazonだけが売っている)商品のリンクで試してみましたが、ちゃんと動いているようです。もちろんみんな大好きカラーコーンだっていけます!
[amazonjs asin=”B004OCOTYI” locale=”JP” title=”TRUSCO カラーコーン 700X380赤”]
Amazonの商品URIから10桁の英数字を抜き出してみたらそれなりに取得できていました。やったぜ!
自分だけでAmazonの価格推移をロギングしたり、欲しい商品が安くなったら起こして欲しいときは AmazonPriceChecker を使うと捗るのではないでしょうか。
でわー。
[amazonjs asin=”4048660683″ locale=”JP” title=”フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門”]