✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
8.5 KiB
8.5 KiB
🙏 Система благодарностей — v1.13
Версия: v1.13 Дата: 27 февраля 2026 г. Статус: ✅ Реализовано
📋 Описание
Система благодарностей позволяет жильцам благодарить друг друга за помощь. Получатель благодарности получает +10 к рейтингу и достижение "Помощник" (если первое).
🎯 Возможности
- ✅ Отправка благодарностей по @username или ID
- ✅ Ограничение: 1 благодарность в день одному пользователю
- ✅ +10 к рейтингу получателю
- ✅ Достижение "Помощник" при первой благодарности
- ✅ Топ пользователей по благодарностям
- ✅ История благодарностей
- ✅ Статистика полученных/отправленных
📱 Команды
Для всех:
| Команда | Описание | Пример |
|---|---|---|
/thank @username |
Поблагодарить пользователя | /thank @ivanov |
/thank <user_id> |
Поблагодарить по ID | /thank 123456789 |
/my_thanks |
Мои благодарности | /my_thanks |
/thanks_top |
Топ по благодарностям | /thanks_top |
/thanks_history |
История благодарностей | /thanks_history |
🎯 Сценарии использования
Сценарий 1: Отправка благодарности
Пользователь:
/thank @ivanov
Бот:
🙏 Благодарность для Иван Иванов
Отправьте текст благодарности (необязательно) или "пропустить":
Пользователь:
Спасибо за помощь с сантехником!
Бот (отправителю):
✅ Благодарность отправлена!
Получатель: Иван Иванов
Сообщение: Спасибо за помощь с сантехником!
Бот (получателю в личку):
🙏 Вам благодарность!
От: Петр Петров
Сообщение: Спасибо за помощь с сантехником!
+10 к рейтингу!
Если первая благодарность — ещё и достижение:
🏆 Новое достижение!
🤝 Помощник
Получил благодарность от соседа
Продолжайте помогать!
Сценарий 2: Ответ на сообщение
Пользователь отвечает на сообщение командой:
/thank
Бот:
🙏 Благодарность для [имя отвечаемого]
Отправьте текст благодарности или "пропустить":
Сценарий 3: Повторная благодарность
Пользователь пытается поблагодарить второй раз за день:
Бот:
⚠️ Вы уже благодарили этого пользователя сегодня!
Можно поблагодарить только один раз в день.
Сценарий 4: Мои благодарности
Пользователь:
/my_thanks
Бот:
🙏 Ваши благодарности
✅ Получено: 5
📤 Отправлено: 3
Последние полученные:
• От user123: Спасибо за консультацию!
• От user456: Спасибо!
• От user789: Очень помог!
Сценарий 5: Топ по благодарностям
Пользователь:
/thanks_top
Бот:
🙏 Топ по благодарностям
🥇 Иван Иванов (кв. 45) — 15 благодар.
🥈 Петр Петров (кв. 88) — 12 благодар.
🥉 Анна Сидорова (кв. 12) — 10 благодар.
4. Мария Козлова (кв. 100) — 8 благодар.
5. Василий Смирнов (кв. 50) — 6 благодар.
🗄️ База данных
Таблица thanks:
CREATE TABLE thanks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
from_user_id BIGINT NOT NULL, -- Кто поблагодарил
to_user_id BIGINT NOT NULL, -- Кого поблагодарили
message TEXT, -- Текст благодарности
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (from_user_id) REFERENCES users(user_id),
FOREIGN KEY (to_user_id) REFERENCES users(user_id)
)
Индексы:
ix_thanks_from— по отправителюix_thanks_to— по получателюix_thanks_created— по времени
🧪 Тестирование
Чек-лист проверки:
1. Отправка благодарности
/thank @username
# Отправить текст
- Благодарность сохранена
- Получатель уведомлён
- +10 к рейтингу начислено
2. Первая благодарность
# Получить первую благодарность
- Достижение "Помощник" выдано
- Уведомление о достижении пришло
3. Повторная благодарность
# Попытаться поблагодарить второй раз за день
- Бот блокирует повторную благодарность
4: Мои благодарности
/my_thanks
- Статистика отображается
- Последние полученные показаны
5: Топ
/thanks_top
- Топ отображается
- Медали у первых трёх
📁 Изменённые файлы
| Файл | Изменения |
|---|---|
database/models.py |
Модель Thank |
database/migrate_add_thanks.py |
Миграция БД |
services/thanks.py |
Сервис благодарностей |
services/achievements.py |
Достижение "Помощник" |
handlers/thanks.py |
Хендлеры благодарностей |
handlers/__init__.py |
Импорт thanks_router |
main.py |
Регистрация thanks_router |
🚀 Как использовать
Для жильца:
-
Поблагодарить:
/thank @ivanov -
Посмотреть свои благодарности:
/my_thanks -
Посмотреть топ:
/thanks_top
💡 Советы
Ограничения:
- 1 благодарность в день — одному пользователю
- Нельзя себе — нельзя поблагодарить самого себя
- +10 к рейтингу — за каждую благодарность
Когда благодарить:
- ✅ Сосед помог с ремонтом
- ✅ Подсказали по вопросам ЖКХ
- ✅ Помогли с доставкой
- ✅ Поделились контактами мастеров
- ✅ Любая другая помощь
🔧 Отладка
Посмотреть благодарности в БД:
cd /home/matrixhasyou/domovoy_bot
source venv/bin/activate
sqlite3 database/domovoy.db
SELECT from_user_id, to_user_id, message, created_at
FROM thanks
ORDER BY created_at DESC
LIMIT 20;
Логи:
tail -f logs/bot.log | grep -i "благодар\|thank"
✅ Преимущества
| Было | Стало |
|---|---|
| Нет способа сказать спасибо | Система благодарностей |
| Нет мотивации помогать | +10 к рейтингу |
| Нет признания | Достижение "Помощник" |
| Не видно кто помогает | Топ по благодарностям |
Система благодарностей готова! 🙏
Следующий шаг: тестирование и фиксация версии v1.13