Files
Stan-Ansible/README.md
T
2023-01-02 23:02:10 +03:00

72 lines
2.9 KiB
Markdown

# Lutz Bot
Multipurpose Telegram Bot for Python group
### What does this project do?
* Send links on command (chat rules, FAQs, libraries etc.)
* Ban users and delete messages
* Filter links
* Remind dates
* Daily statistics publication (how many banned, deleted, sent messages)
* Search for the Zen of Python quotes (inline query)
* Help users with googling their queries
* Make faces when doubtful bloggers are mentioned
* Etc. (functionality is growing up)
### Why is this project useful?
You can use this project as a pre-coded customizable bot.
Original (and currently working) bot Telegram username: @LutzPyBot
### How to deploy it?
1. Clone repository on your linux server into `lutzpybot` user's home directory.
2. Create virtual environment, activate virtual environment, install required packages from `requirements.txt`.
3. Create `.env` file in `lutzbot` directory with 3 variables: `LUTZPYBOT` (Bot Token), `whitelist` (White usernames, comma separated), `whiteids` (White IDs, comma separated)
4. Install `gunicorn` package additionally with `pip install gunicorn`
5. Set webhook using Python interactive shell with `bot.set_webhook()` or manually according [Telegram Bot API Documentation](https://core.telegram.org/bots/api#setwebhook).
6. Configure nginx as a reverse proxy.
7. Configure the bot as a daemon.
### How to configure bot as a daemon?
1. Create daemon unit file in `/etc/systemd/system/lutz.service` with the content (replace `inferno` with your username):
```
[Unit]
Description=@Lutz Telegram Bot
After=network.target
[Service]
User=inferno
Group=inferno
WorkingDirectory=/home/inferno/lutzpybot
Environment="PATH=/home/inferno/lutzpybot/venv/bin"
ExecStart=/bin/bash -c 'source /home/inferno/lutzpybot/venv/bin/activate; gunicorn --bind unix:/tmp/lutz.sock wsgi:app' #Restart=on-failure
[Install]
WantedBy=multi-user.target
```
2. Enable and start with `systemctl enable lutz.service`, `systemctl start lutz.service`.
### Where can I get more help, if I need it?
Bot is easily understandable reading in-code comments of the handler functions, additionally read [PyTelegramBotAPI documentation](url=https://github.com/eternnoir/pyTelegramBotAPI) for library help.
### How do I read logs of running Lutz bot daemon?
Continuous log reading on Linux:
```# journalctl --unit=lutz.service -f```
### Hot to interact with Lutz bot?
Bot can recieve commands and behave depending on chat situation.
Standard command pack for bot father includes:
* nobot - Telebot shouldn't be your first Python project
* nogui - GUI app shouldn't be your first Python project
* nometa - Don't ask meta questions
* neprivet - Don't hello
* bdmtss - Rimshot
* quote - Random quote
* add - Add quote
* g - Google it [Request text can be any text from replied message or arguments if there's text after `\g example`]
* rules - Chat rules
* faq - FAQ
* books - Pythonista's Library
* lutz - Send Lutz book