iPhone7等の新製品を誰よりも早く予約する為に、予約サイトがオープンしたらSlackに通知する方法
Shell Script Advent Calendar 2015 8日目を担当させていただきます、@yudsuzukです。
今回は実用的なシェルスクリプトについて書きます。
GoogleのNexusやAppleのiPhone等の新製品の発表は、日本時間で深夜なため、起きているのが辛いし、いつ購入サイトがオープンしたか分かり難いですよね。
気がついたら、新製品の予約サイトがオープンしてて、お目当ての製品が既に予約でいっぱい。お届け予定日数は1ヶ月後なんて事もしばしば。
そんなあなたのために、新製品の予約サイトがオープンしたらSlackに通知させるシェルスクリプトをつくりました。
今回は、実際にそのシェルスクリプトのお陰で予約ができたNexus5X、Nexus6Pの事例と、近い将来発売されるであろうiPhone7の予約サイトオープン通知スクリプトを紹介します。
Nexus5XとNexus6Pの予約サイトオープン事例
今回はGoogleの新製品、Nexus5XとNexus6Pの予約サイトがオープンした時の事例を紹介します。
予めSlackのIncoming WebHooksでWebhook URLを取得してください。
doneFile=done.txt if [ ! -e $doneFile ]; then exit 0 fi # 通知するSlackのチェンネル channel="#test" # 通知する時のユーザ名 username="incoming-webhook" # 通知するユーザのアイコン iconemoji=":shell:" # WebHookURL webhookUrl="https://hooks.slack.com/services/XXXXXXXX" # 通知文言 text="nexus_5xとnexus_6pのサイトがオープンしたよ!" # サイトURL prefix prefixUrl="https://store.google.com/product/" # 製品名 products=("nexus_5x" "nexus_6p") for product in ${products[@]} do status=`/usr/bin/curl -LI $prefixUrl$product -o /dev/null -w '%{http_code}' -s` if [ $status -eq '200' ]; then /usr/bin/curl -X POST --data-urlencode "payload={\"channel\": \"${channel}\", \"username\": \"${username}\", \"text\": \"${text}\", \"icon_emoji\": \"${iconemoji}\"}" ${webhookUrl} touch $doneFile exit 0 fi done
cronに仕込めば完成。
5分おきぐらいに実行すれば怒られないでしょう。
URLが下記のものであるだろうという予測を元に作ってあります。
https://store.google.com/product/nexus_5x https://store.google.com/product/nexus_6p
ドキドキでしたが、このスクリプトを仕込んだ結果、ちゃんと通知されていました。
予約サイトがオープンした時間は日本時間AM2:20でした! この通知を見て無事予約できました。
iPhone7の予約サイトがオープンしたことをSlackに通知させたい
近い将来発売されるであろうiPhone7。
iPhone7の予約サイトがオープンしたことをSlackに通知させる場合は、先ほどのスクリプトを下記のように変更してください。
# サイトURL prefix prefixUrl="http://www.apple.com/jp/shop/buy-iphone/" # 製品名 products=("iphone7")
このスクリプトを仕込んだあなたは、きっと誰よりも早くiPhone7を手に入れる事ができるでしょう!
※URLを予測しているので、失敗したらごめんなさい。
※発表されるであろう日に仕込んでください。
ということでShell Script Advent Calendar 2015 8日目でした。
次は@ryoana14さんです。よろしくお願いします!