v1.26 Исправление + systemd автозапуск
🐛 ИСПРАВЛЕНИЯ: • 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 <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
b7d9508e56
commit
d2ad0c4da0
3 changed files with 62 additions and 4 deletions
27
domovoy-bot.service
Normal file
27
domovoy-bot.service
Normal file
|
|
@ -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
|
||||||
|
|
@ -87,12 +87,12 @@ async def monitor_all_messages(message: Message):
|
||||||
if old_value:
|
if old_value:
|
||||||
logger.info(f'Profile change: user_id={user_id}, {field_name}: {old_value} → {new_value}')
|
logger.info(f'Profile change: user_id={user_id}, {field_name}: {old_value} → {new_value}')
|
||||||
|
|
||||||
# Обновляем данные
|
# Обновляем данные (защищаемся от None)
|
||||||
user.message_count += 1
|
user.message_count = (user.message_count or 0) + 1
|
||||||
user.last_seen = datetime.utcnow()
|
user.last_seen = datetime.utcnow()
|
||||||
|
|
||||||
# Начисляем рейтинг за сообщение
|
# Начисляем рейтинг за сообщение (защищаемся от None)
|
||||||
user.rating += RATING_PER_MESSAGE
|
user.rating = (user.rating or 0) + RATING_PER_MESSAGE
|
||||||
user.update_level() # Обновляем уровень
|
user.update_level() # Обновляем уровень
|
||||||
|
|
||||||
# ==========================================
|
# ==========================================
|
||||||
|
|
|
||||||
31
install-systemd.sh
Normal file
31
install-systemd.sh
Normal file
|
|
@ -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 # Логи"
|
||||||
Loading…
Reference in a new issue