Discord bot · Scraping · Playwright
CordeSortie.
The rope that gets you out of checking shop websites yourself: a Discord bot that watches 9 French retailers and pings you as soon as a Pokémon item is in stock.
What it does
- Watches 9 sites: Carrefour, JouéClub, Leclerc, Auchan, Cultura, Ludifolie, Micromania, La Taverne de Dream and Dracaustore.
- Guided filters: tick the sites, then fill a form — “must contain all these words”, “at least one of these”, “must not contain”. The bot writes the expression for you, and the search ignores case and accents.
- One dedicated channel per filter, created and removed automatically, optionally private. Each alert pings the filter's owner without cluttering the channel with mentions.
- Dashboard, help and log channels kept up to date automatically. The log groups identical errors with a counter instead of flooding.
- /stats, /pause and /resume commands, globally or per filter.
Polite scraping
- Jittered scrape interval with a hard one-minute floor that cannot be bypassed.
- Exponential backoff on errors, and CAPTCHA / challenge detection.
- Sites protected by an anti-bot (Datadome, Cloudflare) are left out rather than forced.
Under the hood
Python 3.12, discord.py, Playwright (Chromium), SQLite through aiosqlite, and Pydantic. Runs in production on a Raspberry Pi 3 as a systemd service — or anywhere with Docker Compose.