domovoy_bot/БЛАГОДАРНОСТИ.md
Admin ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00

8.5 KiB
Raw Permalink Blame History

🙏 Система благодарностей — 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

🚀 Как использовать

Для жильца:

  1. Поблагодарить:

    /thank @ivanov
    
  2. Посмотреть свои благодарности:

    /my_thanks
    
  3. Посмотреть топ:

    /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