A tool for automated participation in raffles on Scrap.TF. The program scans active raffle pages, stores them in a local database, and enters them on your behalf.
- Steam authentication via embedded browser (nodriver)
- Periodic scanning of
/rafflesand/raffles/endingpages - Raffle data stored in a local SQLite database
- Automatic navigation to raffle pages and enter button interaction
- PyQt6 GUI with real-time stats and log output
| Component | Description |
|---|---|
| nodriver | Undetected Chrome browser automation |
| PyQt6 | Desktop UI with dark theme |
| SQLite | Local raffle storage (WAL mode) |
| asyncio | Async browser operations |
- Download
ScrapTF2.exefrom releases - Place it in a separate folder
- Run it and log in to Steam through the browser that opens
git clone https://github.com/Lemirda/ScrapTF2.git
cd ScrapTF2
pip install -r requirements.txt
python main.pyScrapTF2/
├── main.py # Entry point
├── src/
│ ├── config.py # Configuration
│ ├── browser/
│ │ ├── login.py # Steam authentication
│ │ ├── scanner.py # Scanning loop
│ │ └── scraper.py # Page parsing & raffle entry
│ ├── db/
│ │ └── manager.py # SQLite operations
│ └── ui/
│ ├── app.py # Main PyQt6 window
│ ├── workers.py # Background threads
│ └── styles.py # Color scheme
├── scripts/
│ └── build.py # PyInstaller build script
└── .github/
└── workflows/
└── build-release.yml # CI/CD
- Browser profile stored locally in
browser_profile/ - Credentials are not transmitted to any third party
raffles.dbdatabase is created next to the executable- Source code is open for review