diff --git a/GEMINI.md b/GEMINI.md new file mode 100644 index 0000000..5ed5446 --- /dev/null +++ b/GEMINI.md @@ -0,0 +1,46 @@ +# Tele2Bale Project Context + +This project is a Python-based automation tool designed to transfer files and media from a Telegram bot to Bale's "Saved Messages" using a Userbot. It uses a multi-process architecture with a file-based queue system to ensure stability and reliable delivery of large files (bypassing the 50MB bot limit). + +## Architecture Overview + +The application is split into two main components coordinated by a central runner: + +1. **Orchestrator (`main.py`):** Spawns and manages two separate processes: the Telegram bot and the Bale worker. +2. **Telegram Bot (`telebot.py`):** + * Built using `Pyrogram`. + * Handles user interactions, receives media, and extracts URLs. + * Manages the task queue by writing to `queue/tasks.jsonl`. + * Provides a "Safe Mode" for ZIP encryption. + * Monitors `queue/status.jsonl` for real-time feedback. +3. **Bale Worker (`bale.py`):** + * Built using `aiobale`. + * Operates as a **Userbot** (logs in with a phone number) to allow uploading files larger than 50MB. + * Consumes tasks from the queue sequentially. + * Downloads files from direct URLs if necessary. + * Performs ZIP encryption when Safe Mode is enabled. + * Uploads files to the user's Saved Messages (`BALE_TARGET_ID`). + +## Key Files and Directories + +* `main.py`: Entry point that starts both the bot and the worker. +* `telebot.py`: Telegram bot logic. +* `bale.py`: Bale userbot worker logic. +* `queue/`: JSONL files for task management and status reporting. +* `downloads/`: Temporary storage for files. + +## Development & Configuration + +### Environment Variables (`.env`) +* `API_ID`, `API_HASH`, `BOT_TOKEN`: Telegram API credentials. +* `BALE_PHONE`: Phone number for Bale authentication (+98...). +* `BALE_TARGET_ID`: UID of the target chat in Bale (e.g., Saved Messages ID). + +### Building and Running +1. **Install dependencies:** `pip install -r requirements.txt` +2. **Initial Setup:** Run `python3 bale.py` manually once to log in and create the `bale_userbot.session` file. You will need to enter the verification code from Bale. +3. **Run the application:** `python3 main.py` + +### Conventions +* **Userbot for Large Files:** Bale bots are limited to 50MB. This project uses a Userbot to bypass this restriction. +* **Process Isolation:** The bot and worker are independent and communicate via files.