{"repo":"atakanakin/TutunSabri","free":true,"listed":false,"github":"https://github.com/atakanakin/TutunSabri","clone":"git clone https://github.com/atakanakin/TutunSabri.git","description":"He is not our hero. He is a silent guardian. A watchful protector.","language":"Python","stars":12,"topics":["automation","instagram","python","telegram","telegram-bot","text-to-speech","tts","web-automation","youtube","youtube-downloader"],"license":"MIT","category":"chat-messaging","readme_excerpt":"Tütün Sabri An async Telegram bot that monitors train availability and holds a seat the moment one opens up. How it works 1. A user submits a departure station, arrival station, date, and departure hour. 2. The bot creates a background task that polls for availability on a configurable interval. 3. When a seat becomes available the bot immediately attempts to hold it. 4. The user is notified and the seat is kept held for a configurable window (default 10 minutes) so they can complete the purchase manually. 5. The user can cancel a search or release a held seat at any time. Stack Layer Technology --- --- Bot framework aiogram 3.x Database SQLite via SQLAlchemy (async) Task queue TaskIQ + Redis HTTP client curl-cffi Config Pydantic Settings Requirements - Python 3.9+ - Redis Setup Configuration All configuration is done through environment variables (or a .env file). Access model - New users have no access by default. They can send an access request through the bot, which notifies all admins. - An admin approves or rejects requests via /grant and /revoke . - Roles determine how many searches can run in parallel: basic (3), premium (5), admin (unlimited). Database migrations The bot applies lightweight SQLite migrations automatically on startup, so there is no separate migration step when upgrading. --- Legal disclaimer This project is developed strictly for educational purposes . - It is not designed to cause harm, disrupt service availability, perform denial-of-service attacks","default_branch":null,"files":null,"tree":[],"storefront":"/r/atakanakin","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/atakanakin/TutunSabri/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}