telegram-report-bot
telegram-report-bot copied to clipboard
A simple bot to handle reports from users in your chat
Report bot for Telegram
This repository contains source code of a small yet rather powerful bot for Telegram, which handles reports from users and passes them to admins.
Uses aiogram framework.
The main goal is to build a bot with no external database needed. Thus, it may lack some features, but hey, it's open source!
Screenshot

Features
/reportcommand to gather reports from users;- Reports can be sent to a dedicated chat or to dialogues with admins;
/rocommand to set user "read-only" and/nomediato allow text messages only;- [optional] Automatically remove "user joined" service messages;
- [optional] Automatically ban channels (since December 2021 users can write on behalf of their channels);
- If text message starts with
@admin, admins are notified; - A simple interface for admins to choose one of actions on reported message;
- English and Russian languages are built-in.
Requirements
- Python 3.9 and above;
- Tested on Linux, should work on Windows, no platform-specific code is used;
- Systemd (you can use it to enable autostart and autorestart) or Docker.
Installation
- Go to @BotFather, create a new bot, write down its token, add it to your existing group and make bot an admin. You also need to give it "Delete messages" permission.
- Create a separate group where report messages will be sent and add all group admins there. Remember: anyone who is in that group may perform actions like "Delete", "Ban" and so on, so be careful.
- Use some bot like @my_id_bot to get IDs of these two groups;
- Clone this repo and
cdinto it; - Copy
env_distto.env(with dot). Warning: files starting with dot may be hidden in Linux, so don't worry if you stop seeing this file, it's still here! - Replace default values with your own;
- Now choose installation method: systemd or Docker
systemd
- Create a venv (virtual environment):
python3.9 -m venv venv(or any other Python 3.7+ version); source venv/bin/activate && pip install -r requirements.txt;- Rename
reportbot.service.exampletoreportbot.serviceand move it to/etc/systemd/system; - Open that file and change values for
WorkingDirectory,ExecStartandEnvironmentFileproviding the correct path values; - Start your bot and enable its autostart:
sudo systemctl enable reportbot.service --now;
6.Check your bot's status and logs:systemctl status reportbot.service.
Docker
- Build and run your container:
docker-compose up -d.
Alternatively, check docker-compose.yml file from this repo.