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
/report
command to gather reports from users;
- Reports can be sent to a dedicated chat or to dialogues with admins;
/ro
command to set user "read-only" and /nomedia
to 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
cd
into it;
- Copy
env_dist
to .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.example
to reportbot.service
and move it to /etc/systemd/system
;
- Open that file and change values for
WorkingDirectory
, ExecStart
and EnvironmentFile
providing 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.