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!
/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.
- 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.
- 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
- 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
toreportbot.service
and move it to/etc/systemd/system
; - Open that file and change values for
WorkingDirectory
,ExecStart
andEnvironmentFile
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
.
- Build and run your container:
docker-compose up -d
.
Alternatively, check docker-compose.yml file from this repo.