1. 背景:瞬殺された経験
先日 90s ハーレーダビッドソン オリジナルレザー財布(純正チェーン付属) がセカストで5,000円未満で掲載され瞬殺されました。メルプロ開発者です。
意外と探すとないのがチェーン付属で状態のいい物です。
ヘビーユースされていて状態がよくないもの、現存していないものも多い中綺麗な状態であの価格は衝撃でした。
(これに似たモデルです)
セカストの新着通知は一瞬の勝負かも知れない。
悔しくて何度もサイトをチェックするものの同じものが同じ値段で出ない日々。。。
時間を無駄にしている気がしている時、気がつきました。
通知を自動化すれば良いとじゃん、と。そう思い作ってみました。
2. システム構成(シンプルイズベスト)
技術スタック: Chrome拡張機能(Content Script + Background Service Worker)
通知方法: chrome.notifications API(ブラウザ標準のデスクトップ通知)
監視方法: fetch による定期巡回(ポーリング)
ポイント: サーバーに負荷をかけすぎない適切なインターバル設定について。
3. 技術的な実装の肝
前回取得データとの差分検知:
chrome.storage に前回の一番上の商品IDを保存しておき、最新のIDと比較して新しければ通知。
通知のクリックイベント:
通知をクリックしたら、そのままその商品の詳細ページへ飛ぶ実装例。
ローカル完結のメリット:
サーバーレスなので、自分のPCが動いている間だけ動く。管理コストゼロのお手軽実装版です。
4. サンプルコード(技術共有)
// 新着をチェックして差分があれば通知するロジックの抜粋
async function checkNewArrivals() {
const response = await fetch(TARGET_URL);
// DOMパーサー等で最新の商品IDを抽出
const currentTopId = extractTopId(await response.text());
const { lastId } = await chrome.storage.local.get('lastId');
if (currentTopId && currentTopId !== lastId) {
chrome.notifications.create({
title: 'セカスト新着アリ!',
message: '狙っていたカテゴリに新着アイテムが追加されました。',
iconUrl: 'icon.png',
type: 'basic'
});
await chrome.storage.local.set({ lastId: currentTopId });
}
}
5. 今後について
ディスコードなどに通知出来ればいいなと考えています。
(こんなイメージ)
5. 運用とテスター募集
メルプロの「オークション機能(https://qiita.com/merpro-dev/items/21feb002bc0f0a19b06d )」に加えて、この「セカスト監視機能」も実験的に開発中の日々。
今後はディスコードのチャンネルにセカストの商品が新着通知するサービスも検討しています。
セカストに限らずこんなサイトの新着通知(他のECサイトや不動産サイト、その他のサイト)があれば欲しいという方ぜひ。
開発の参考にしたいので是非以下の応募フォームよりご連絡ください。
併せてテスターの方も募集いたします。
セカスト通知テスター応募フォーム:https://docs.google.com/forms/d/e/1FAIpQLScSZoREhTNCk1FqNFXWkr01jelDdDvQN3EVUgg7q5ko1P0RQw/viewform?usp=publish-editor


