2023-04-06 03:07:19 +03:00
2023-04-06 03:07:19 +03:00
2023-04-04 13:50:48 +03:00
2023-01-05 02:17:10 +03:00
2023-01-05 02:17:10 +03:00
2023-02-22 18:53:12 +03:00
2022-11-26 05:03:16 +03:00
2023-02-12 06:19:22 +03:00
2023-02-22 18:53:12 +03:00

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
  • Remind dates
  • Report Daily statistics (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.

Why is this project useful?

You can use this project as a pre-coded customizable bot. Original (and currently working example) 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.
  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
  1. 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 for library help.

How do I read logs of running Lutz bot daemon?

Continuous log reading on Linux:

# journalctl --unit=lutz.service -f

How to interact with Lutz bot?

Bot can receive 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 - Rim shot
  • 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
S
Description
No description provided
Readme
748 KiB
Languages
Python 98.6%
Jinja 0.9%
Dockerfile 0.5%