Snow Peak 公式オンラインストアの製品入荷情報をSlackに通知する仕組みを雑につくりました。
目次
モチベーション
Snow Peakは最近お気に入りのアウトドア製品メーカーで、流行りもあるのか入荷待ちの商品ばかりで欲しいときに買えないのが悔しいのでつくりました。とりあえずキャンプカテゴリの製品のみ対象としています。 ref: キャンプの通販 | アウトドア・キャンプ用品はスノーピーク(Snow Peak)
近所に直営店はありますが、直営店もすべての商品があるわけではないし、正直入荷待ちのものも多いです。
ちなみにオンラインストアの在庫管理は実店舗のそれとは別らしいです。
アーキテクチャ
- 突貫工事
- 料金コストは極力かけたくない
という前提で、 GitHub Actions のVM上でスクリプトを schedule
トリガーを利用して定期実行するという実装にしました。
スクレイピングで製品一覧の情報をとって結果を保持しておき、次回の実行時にその状態と比較して入荷していたらSlackに通知する、というシンプルなスクリプトです。
スクリプト本体はPythonで雑に書いてあります。
ref: https://github.com/sugarshin/sp-product-arrival-notifier
Artifact
GitHub ActionsのArtifactsとしてスクレイピングした結果を保持するのですが、謹製の download-artifact アクションだと別々のWorkflow間ではArtifactsを参照できないです。なのでちょうどそれをうまくやってくれるアクションが公開されていたので利用しました。
ref: https://github.com/dawidd6/action-download-artifact