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 # Логи"