オンラインストアの入荷情報を Slack に通知する
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