72 lines
2.5 KiB
Markdown
72 lines
2.5 KiB
Markdown
# AWB (Awfully Written Bot)
|
|
|
|
A Telegram bot designed for secure message forwarding with captcha verification.
|
|
|
|
## Features
|
|
|
|
- **Captcha Verification**: Users have to solve an image-based captcha before their messages are forwarded (can be disabled).
|
|
- **Support for All Media**: Forwarding works for text, photos, videos, documents, audio, and voice messages.
|
|
- **Message Redirection**: Verified messages are automatically redirected to the admins.
|
|
- **Anonymized Forwarding**: Messages are forwarded with a custom prefix `Forwarding, ID [MSG_ID]:`, maintaining privacy while allowing admins to track messages.
|
|
- **Locale Support**: Built-in support for multiple languages (defaulting to English).
|
|
- **Admin Panel**: Authorized admins can access usage statistics and message logs.
|
|
|
|
## Setup
|
|
|
|
1. **Clone the repository**:
|
|
```bash
|
|
git clone <repository_url>
|
|
cd AWB
|
|
```
|
|
|
|
2. **Install dependencies**:
|
|
This project uses `uv` for dependency management.
|
|
```bash
|
|
uv sync
|
|
```
|
|
Or using pip:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
3. **Configure environment variables**:
|
|
Copy `.env.dist` to `.env` and fill in your details:
|
|
```bash
|
|
cp .env.dist .env
|
|
```
|
|
Edit `.env`:
|
|
- `BOT_TOKEN`: Your Telegram Bot token from @BotFather.
|
|
- `GROUP_CHAT_ID`: The ID of the group where messages should be redirected.
|
|
- `ADMIN_IDS`: A comma-separated list of Telegram User IDs who can access admin commands.
|
|
- `DISABLE_CAPTCHA`: Set to `True` to disable the captcha verification step (optional, defaults to `False`).
|
|
|
|
## Usage
|
|
|
|
### For Users
|
|
1. Start the bot with `/start`.
|
|
2. Send any message or media.
|
|
3. Solve the image captcha by typing the characters shown.
|
|
4. Once solved, your message is redirected to the admins.
|
|
|
|
### For Admins
|
|
- `/stats`: View total user count.
|
|
- `/logs`: See a list of the 10 most recent redirected messages.
|
|
- `/view <ID>`: View detailed information about a specific message by its ID.
|
|
- `/ban <USER_ID>`: Block a user from using the bot.
|
|
- `/unban <USER_ID>`: Unblock a user.
|
|
|
|
## Commands
|
|
|
|
- `/start`: Initialize the bot and receive a welcome message.
|
|
- `/id`: Retrieve the ID of the current chat (useful for configuration).
|
|
|
|
## Adding Locales
|
|
|
|
The bot supports multiple languages. To add a new locale:
|
|
|
|
1. Create a new JSON file in the `locales/` directory named after the language code (e.g., `fr.json` for French).
|
|
2. Copy the keys from `locales/en.json` and provide the translations for your language.
|
|
3. The bot will automatically load the new locale on startup.
|
|
|
|
|