- Notifications
You must be signed in to change notification settings - Fork1
Telegram bot for automatically banning spammers in Telegram chats. Can generate captcha, reports and has integration with LLM.
License
PlugFox/vixen
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Telegram Vixen Bot is a bot for automatically banning spammers in Telegram chats.Written in Dart that helps prevent spam in Telegram groupsby generating and sending CAPTCHA challenges to new users with a virtual keyboard.It automatically deletes initial messages from unverified users and supports multiple blocking modes.
- CAPTCHA Verification: Requires new users to complete a CAPTCHA before they can send messages.
- Blocking Modes: Supports different verification and restriction mechanisms.
- Admin API: Provides an API for managing bot settings and operations.
- SQLite Storage: Stores persistent data in an SQLite database.
- Group-Specific Monitoring: Watches only designated groups.
- Metrics Support: Tracks bot performance and user activity.
- Flexible Configuration: Configurable via command-line arguments,
.env
file, or environment variables. - Cross-Platform: Runs on Windows, macOS, and Linux, Docker. AMD64 and ARM64 architectures are supported.
- Combot Anti-Spam: Checks messages with Combot Anti-Spam API.
- Reports: Sends reports about activity in the chat.
- Summary: Sends a summary of the chat activity for the last 24 hours.
- Clown Reactions: Reacts to messages with a clown emoji.
- Open-Source: Available under the MIT License.
The bot supports configuration via command-line arguments, environment variables, or a.env
file.
To run the Telegram Vixen Bot, ensure your system meets the following minimum requirements:
- Operating System: Windows, macOS, or a recent Linux distribution
- Processor: x86_64 or ARM64
- Memory: 128 MB RAM
- Storage: 100 MB available space
- Docker: (Optional) For running the bot in a containerized environment
Ensure you haveDart SDK installed. Then, run:
dart pub getdart run build_runner build --delete-conflicting-outputs
You can start the bot using command-line arguments:
dart run bin/vixen.dart --token=123:ABC-DEF --chats=123,-456,-789 --secret=1234567890
Or set the configuration using environment variables:
export CONFIG_TOKEN="123:ABC-DEF"export CONFIG_CHATS="123,-456,-789"export CONFIG_SECRET="1234567890"dart run bin/vixen.dart
Alternatively, create a.env
file:
echo"token=123:ABC-DEF"> .envecho"chats=123,-456,-789">> .envecho"secret=1234567890">> .env
Then, start the bot:
dart run bin/vixen.dart
Argument | Environment | Description | Default |
---|---|---|---|
-t --token | CONFIG_TOKEN | (Required) Telegram bot token | — |
-c --chats | CONFIG_CHATS | Comma-separated list of chat IDs | — |
-s --secret | CONFIG_SECRET | Secret admin API key | — |
-d --db | CONFIG_DB | Path to the SQLite database file | data/vixen.db |
-a --address | CONFIG_ADDRESS | Address to bind the server to | 0.0.0.0 |
-p --port | CONFIG_PORT | Port to bind the server to | 8080 |
-v --verbose | CONFIG_VERBOSE | Logs:all /debug /info /warn /error | warn |
--offset | CONFIG_OFFSET | Offset for Telegram updates | - |
--cas | CONFIG_CAS | Check messages with Combot Anti-Spam | on |
--report-hour | CONFIG_REPORT-HOUR | The hour to send daily report | 17 |
--openai-key | CONFIG_OPENAI-KEY | OpenAI API key for summarization | — |
--openai-url | CONFIG_OPENAI-URL | OpenAI API endpoint | — |
--openai-model | CONFIG_OPENAI-MODEL | OpenAI model | gpt-4o-mini |
--clown | CONFIG_CLOWN | Chance of clown reaction | 0 |
To see all available options, run:
dart run bin/vixen.dart --help
dart pub getdart run build_runner build --delete-conflicting-outputsdart compile exe bin/vixen.dart -o vixen.run
docker build -t vixen:latest.docker compose up
If you want to support the development of our library, there are several ways you can do it:
We appreciate any form of support, whether it's a financial donation or just a star on GitHub. It helps us to continue developing and improving our library. Thank you for your support!
This project is licensed underThe MIT License.
About
Telegram bot for automatically banning spammers in Telegram chats. Can generate captcha, reports and has integration with LLM.