This project is a Python-based tool to monitor the availability of refurbished Steam Deck devices. It checks the stock status of specific device configurations and sends notifications via Discord when availability changes.
- Monitors stock availability for different Steam Deck configurations.
- Sends Discord notifications when stock status changes.
- Configurable via environment variables.
- Docker support for easy deployment.
- Python 3.7 or higher (if not using Docker)
- A Discord webhook URL
- Steam API key from https://steamcommunity.com/dev/apikey
dotenvanddiscord_webhookPython packages (if not using Docker)
-
Clone the repository:
git clone https://github.com/coreyg142/RefurbDeckStockChecker.git cd RefurbDeckStockChecker -
Install dependencies:
pip install -r requirements.txt
-
Create a
.envfile in the root directory with the following variables:webhook_url=YOUR_DISCORD_WEBHOOK_URL key=YOUR_STEAM_API_KEY country_code=YOUR_COUNTRY_CODE check_interval=TIME_IN_SECONDS # Optional, defaults to 60 -
Update
config/devices.jsonwith the configurations you want to monitor.
-
Clone the repository:
git clone https://github.com/coreyg142/RefurbDeckStockChecker.git cd RefurbDeckStockChecker -
Build the Docker image:
docker build -t refurbdeck-stock-checker . -
Docker compose:
app: image: refurbdeck-stock-checker:latest container_name: refurbdeck-stock-checker environment: - key=YOUR_STEAM_API_KEY - country_code=YOUR_COUNTRY_CODE - webhook_url=YOUR_DISCORD_WEBHOOK_URL - check_interval=60 # Optional, defaults to 60 seconds - TZ=America/New_York # Optional volumes: - PATH_TO_CONFIG/config:/usr/app/config
Ensure the
configdirectory contains yourdevices.jsonfile.
Run the script to check stock availability:
python src/script.pyThe script will:
- Query the Steam API for the availability of each device in
config/devices.json. - Update the
availablestatus inconfig/devices.json. - Send a Discord notification if the availability status changes.
The Docker container will automatically run the script and check availability at the configured interval.
A Discord notification might look like this:
512GB OLED is available
1TB OLED is not available