[{"data":1,"prerenderedAt":147},["ShallowReactive",2],{"\u002Fblog\u002Fbooth-notification":3},{"id":4,"title":5,"body":6,"date":130,"description":131,"extension":132,"image":133,"meta":136,"navigation":137,"path":138,"seo":139,"stem":140,"tags":141,"updated":145,"__hash__":146},"blog\u002Fblog\u002Fbooth-notification.md","Booth の新着商品を Discord に通知する",{"type":7,"value":8,"toc":126},"minimark",[9,30,33,43,46,53,56,67,82,91],[10,11,12,13,25,26,29],"p",{},"Booth の VRChat 対応の新着商品を垂れ流してくれる Twitter",[14,15,16],"sup",{},[17,18,24],"a",{"href":19,"ariaDescribedBy":20,"dataFootnoteRef":22,"id":23},"#user-content-fn-1",[21],"footnote-label","","user-content-fnref-1","1"," アカウントが前ありましたよね。",[27,28],"br",{},"\nそれを Discord でやってくれるアプリを作ったよーの回です。",[10,31,32],{},"バイブコーディングでさくっと作ったのと特に難しいことはしてないので内容薄め。",[10,34,35,36,42],{},"リポジトリは",[17,37,41],{"href":38,"rel":39},"https:\u002F\u002Fgithub.com\u002Fekureaa\u002Fbooth-notification",[40],"nofollow","こちら","。",[10,44,45],{},"Booth の検索結果画面をスクレイピングして新しい商品があったら Discord の Webhook に投げるだけのアプリです。",[10,47,48],{},[49,50],"img",{"alt":51,"src":52},"各種情報がいい感じに表示される","content\u002Fbooth-notification-1.png",[10,54,55],{},"Discord の webhook とスクレイピングの URL を一対一で対応させてるので、自分の使用アバターに分けたり、髪型と衣装で分けたりなど色々好きなようにできます。",[10,57,58,59,61,62,66],{},"あと、Booth は商品に無料版と有料版があったときに、検索結果一覧では有料版の値段が表示されてしまうので探しにくいです。",[27,60],{},"\n無料の商品をこぼしなく確認したいなーとも思っていたので、このアプリでは ",[63,64,65],"code",{},"free_only"," のフラグを建てておくと、詳細ページまで確認して無料かどうか見てくれるようにしました。",[10,68,69,70,72,73,81],{},"毎時 Cloudflare Workers から Github Actions を発火させて、その中でスクレイピング～Discord への通知を行ってくれるようになってます。",[27,71],{},"\nGithub Actions 側で cron 機能もあるのですが、試したところ実行してくれる確率が低すぎるので",[14,74,75],{},[17,76,80],{"href":77,"ariaDescribedBy":78,"dataFootnoteRef":22,"id":79},"#user-content-fn-2",[21],"user-content-fnref-2","2","、外部から叩くようにしました。",[10,83,84,85,87,88,90],{},"今回はそんなところです。",[27,86],{},"\n最近は codex くんが全部頑張ってくれるので、自分のための趣味開発という面ではとてもやりやすいですね。",[27,89],{},"\nただ、何もしていなさ過ぎて中身のロジックまでちゃんと確認してないので、そのままフォークして使う場合は注意です。",[92,93,96,102],"section",{"className":94,"dataFootnotes":22},[95],"footnotes",[97,98,101],"h2",{"className":99,"id":21},[100],"sr-only","Footnotes",[103,104,105,117],"ol",{},[106,107,109,110],"li",{"id":108},"user-content-fn-1","X ともいう。 ",[17,111,116],{"href":112,"ariaLabel":113,"className":114,"dataFootnoteBackref":22},"#user-content-fnref-1","Back to reference 1",[115],"data-footnote-backref","↩",[106,118,120,121],{"id":119},"user-content-fn-2","自分がやったときは実行率30%くらい…。 ",[17,122,116],{"href":123,"ariaLabel":124,"className":125,"dataFootnoteBackref":22},"#user-content-fnref-2","Back to reference 2",[115],{"title":22,"searchDepth":127,"depth":127,"links":128},2,[129],{"id":21,"depth":127,"text":101},"2026-07-02","Booth の新着商品を Discord に垂れ流してくれるアプリを作ったので簡単に紹介します。","md",{"src":134,"alt":135},"thumbnails\u002Fbooth-notification.png","Chocolat_B1GleipnirSwimwear",{},true,"\u002Fblog\u002Fbooth-notification",{"title":5,"description":131},"blog\u002Fbooth-notification",[142,143,144],"VRChat","Booth","Github Actions",null,"6lkUmNOpauNT1PMZu8MKnRNh5mz--nLm7oN2pjIHDF4",1783002294572]