Files
Roblox-Buyer/README.md
T

110 lines
3.5 KiB
Markdown

# Roblox-Buyer
Telegram bot for validating Roblox cookies, checking donation history, refreshing payable cookies, and crediting sellers through CryptoBot checks.
## Features
- Cookie intake from plain text or `.txt` files.
- Concurrent Roblox cookie validation with optional proxies.
- Lifetime and yearly donation rate matching.
- AVG pricing for large batches of donation cookies.
- Cookie refresh before storage and payout.
- User balances, withdrawals, referrals, statistics, and bans.
- Admin controls for rates, shop/bot toggles, broadcasts, treasury, and user management.
## Requirements
- Python 3.10 or newer.
- Telegram bot token.
- CryptoBot API token for withdrawals and treasury top-ups.
- An administrator Telegram user ID.
Install the runtime dependencies in a virtual environment:
```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install aiogram aiohttp requests curl-cffi
```
On Linux or macOS, use `source .venv/bin/activate` instead of the PowerShell activation command.
## Configuration
Copy [.env.example](.env.example) and set at least:
```text
BOT_TOKEN=your_telegram_bot_token
ADMIN_ID=your_telegram_user_id
CRYPTO_PAY_TOKEN=your_cryptobot_api_token
```
The application reads environment variables through `config.py`. It does not load `.env` files automatically, so provide the variables through your shell, process manager, container, or another environment loader.
For PowerShell:
```powershell
$env:BOT_TOKEN = "your_telegram_bot_token"
$env:ADMIN_ID = "123456789"
$env:CRYPTO_PAY_TOKEN = "your_cryptobot_api_token"
python main.py
```
The default local paths are:
- `Users/` for user records.
- `filesforcookie/` for temporary cookie files.
- `bot_config.json` for rates, treasury, and feature toggles.
- `bot_stats.json` for aggregate statistics.
- `proxies.txt` for optional proxy entries.
- `robsec.txt` for refreshed cookies retained by the bot.
These runtime files are ignored by Git. Do not commit bot tokens, CryptoBot tokens, Roblox cookies, user records, or proxy credentials.
## Running
Start polling with:
```powershell
python main.py
```
Users can start with `/start`, send cookie text, or upload a `.txt` file. Administrators can open `/admin` to manage the shop.
## Project Structure
```text
main.py Bot bootstrap and polling
config.py Environment settings and defaults
db/storage.py Config, stats, and proxy persistence
db/users.py User record persistence
models/ Typed data models
services/roblox.py Roblox validation, donation lookup, refresh
services/pricing.py Rate matching and payout calculations
services/withdrawals.py CryptoBot checks and treasury invoices
services/referrals.py Referral payouts
services/admin.py Admin operations
handlers/ Telegram commands, callbacks, and FSM flows
keyboards/ Inline keyboard builders
states/admin.py Admin FSM states
utils/ Parsing, logging, and shared helpers
```
## Security Notes
Roblox cookies are credentials. Treat `robsec.txt`, uploaded files, and the `Users/` directory as sensitive data. Restrict filesystem access, keep backups encrypted, and remove data that is no longer needed.
The CryptoBot integration currently uses the testnet API endpoints in `services/withdrawals.py`. Review and change those endpoints deliberately before handling production funds.
## Verification
Run a syntax check with:
```powershell
python -m compileall -q .
```
## License
MIT. See [LICENSE](LICENSE).