From d2ad0c4da0a019b02edb4e0b9e441f9a1dcd6bfb Mon Sep 17 00:00:00 2001 From: Admin Date: Fri, 13 Mar 2026 18:16:04 +0400 Subject: [PATCH] =?UTF-8?q?v1.26=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20+=20systemd=20=D0=B0=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 ИСПРАВЛЕНИЯ: • chat_monitor.py: защита от None • message_count: (None or 0) + 1 • rating: (None or 0) + RATING_PER_MESSAGE 🤖 SYSTEMD АВТОЗАПУСК: • domovoy-bot.service — systemd юнит • install-systemd.sh — скрипт установки • Автозапуск после ребута • Перезапуск при падении • Логи через journalctl 📁 ФАЙЛЫ: • handlers/chat_monitor.py: исправление • domovoy-bot.service: systemd • install-systemd.sh: установка 🎯 УСТАНОВКА: ./install-systemd.sh Co-authored-by: Qwen-Coder --- domovoy-bot.service | 27 +++++++++++++++++++++++++++ handlers/chat_monitor.py | 8 ++++---- install-systemd.sh | 31 +++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 domovoy-bot.service create mode 100644 install-systemd.sh diff --git a/domovoy-bot.service b/domovoy-bot.service new file mode 100644 index 0000000..46d8258 --- /dev/null +++ b/domovoy-bot.service @@ -0,0 +1,27 @@ +[Unit] +Description=Domovoy Bot - Telegram Bot for Apartment Building +After=network.target + +[Service] +Type=simple +User=matrixhasyou +Group=matrixhasyou +WorkingDirectory=/home/matrixhasyou/domovoy_bot +Environment="PATH=/home/matrixhasyou/domovoy_bot/venv/bin" +ExecStart=/home/matrixhasyou/domovoy_bot/venv/bin/python /home/matrixhasyou/domovoy_bot/main.py +Restart=always +RestartSec=10 +StandardOutput=append:/home/matrixhasyou/domovoy_bot/logs/systemd.log +StandardError=append:/home/matrixhasyou/domovoy_bot/logs/systemd.log + +# Limitations +LimitNOFILE=65535 +Nice=10 +IOSchedulingClass=idle + +# Security +NoNewPrivileges=true +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/handlers/chat_monitor.py b/handlers/chat_monitor.py index 0dbc9f1..622f5e0 100644 --- a/handlers/chat_monitor.py +++ b/handlers/chat_monitor.py @@ -87,12 +87,12 @@ async def monitor_all_messages(message: Message): if old_value: logger.info(f'Profile change: user_id={user_id}, {field_name}: {old_value} → {new_value}') - # Обновляем данные - user.message_count += 1 + # Обновляем данные (защищаемся от None) + user.message_count = (user.message_count or 0) + 1 user.last_seen = datetime.utcnow() - # Начисляем рейтинг за сообщение - user.rating += RATING_PER_MESSAGE + # Начисляем рейтинг за сообщение (защищаемся от None) + user.rating = (user.rating or 0) + RATING_PER_MESSAGE user.update_level() # Обновляем уровень # ========================================== diff --git a/install-systemd.sh b/install-systemd.sh new file mode 100644 index 0000000..c732a6e --- /dev/null +++ b/install-systemd.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Установка systemd сервиса для Домового Бота + +echo "🔧 Установка systemd сервиса..." + +# Копируем сервис в systemd +sudo cp domovoy-bot.service /etc/systemd/system/ +echo "✅ Сервис скопирован" + +# Перезагружаем systemd +sudo systemctl daemon-reload +echo "✅ systemd обновлён" + +# Включаем автозапуск +sudo systemctl enable domovoy-bot +echo "✅ Автозапуск включён" + +# Запускаем сервис +sudo systemctl start domovoy-bot +echo "✅ Сервис запущен" + +# Проверяем статус +sudo systemctl status domovoy-bot --no-pager + +echo "" +echo "📊 КОМАНДЫ УПРАВЛЕНИЯ:" +echo " sudo systemctl start domovoy-bot # Запустить" +echo " sudo systemctl stop domovoy-bot # Остановить" +echo " sudo systemctl restart domovoy-bot # Перезапустить" +echo " sudo systemctl status domovoy-bot # Статус" +echo " journalctl -u domovoy-bot -f # Логи"