domovoy_bot/VERSIONS.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

16 KiB
Raw Permalink Blame History

📦 Версии домового бота

Проект: Домовой Бот для чата многоквартирного дома Репозиторий: /home/matrixhasyou/domovoy_bot


🎯 План развития (Roadmap 2.0)

Функции для реализации (приоритетные):

Функция Статус Версия Дата
1 Опросы и голосования Реализовано v1.1 26.02.2026
2 Чёрный список ссылок Реализовано v1.2 26.02.2026
3 Анти-спам (лимиты сообщений) Реализовано v1.3 26.02.2026
4 Расписание отключений (вода/свет) Реализовано v1.4 26.02.2026
5 Доска объявлений (соседская) Реализовано v1.5 26.02.2026
6 Напоминания о платежах ЖКХ Реализовано v1.6 26.02.2026
7 Детект мультиаккаунтов Реализовано v1.7 26.02.2026
8 Облако тегов тем чата Реализовано v1.8 26.02.2026
9 Рейтинг токсичности Реализовано v1.9 26.02.2026
10 История версий профиля Реализовано v1.10 26.02.2026
11 Веб-интерфейс админа Реализовано v1.11 27.02.2026
12 Достижения жильцов Реализовано v1.12 27.02.2026
13 Система благодарностей Реализовано v1.13 27.02.2026
14 Календарь событий дома Реализовано v1.14 27.02.2026
15 AI-Юрист (NotebookLM) 🔮 Будущее v2.0

📋 Текущая версия: v1.0 MVP

Дата фиксации: 26 февраля 2026 г. Статус: Готов к эксплуатации Бекап: backups/versions/v1.0_mvp_2026-02-26/

Реализованный функционал v1.0:

1. База данных и архитектура

  • SQLite + SQLAlchemy (асинхронный)
  • 6 таблиц: User, Message, Service, VerificationRequest, SpyLog, Announcement
  • Миграции БД
  • Автоматическое создание таблиц при старте

2. Пользователи и верификация

  • Регистрация через /start
  • Верификация по номеру квартиры
  • Профиль с квартирой и телефоном
  • Управление телефоном (/myphone, /add_phone, /edit_phone, /remove_phone)
  • Несколько жильцов на квартиру (метка 🏠(N))
  • Команды /apt, /apt_stats, /find

3. Рейтинг и уровни

  • +1 балл за каждое сообщение
  • Уровни: Новичок (0-99), Сосед (100-499), Активист (500-999), Лидер (1000+)
  • Команды: /rating, /top, /rank
  • Только для админов в личке

4. Безопасность

  • Детект шпионов (Score 0-100, 8 факторов)
  • Анти-мат (3 предупреждения → бан)
  • Чёрный список слов (~50 слов)
  • Бан/разбан (/ban, /unban)
  • Отзыв верификации (/unverify)
  • Авто-удаление через 7 дней без верификации
  • Логирование подозрительных (/log_spy)

5. Админ-панель

  • Только в личке (/admin)
  • Кнопки меню: Статистика, Шпионы, Пользователи, Рассылка, Рейтинг
  • Рассылка объявлений (чат + лички)
  • Статистика чата (/stats)
  • Экспорт JSON (/export)

6. Телефоны и контакты

  • Экстренные службы (103, 101, 102, 104, 112)
  • УК и аварийные службы
  • Мастера (сантехники, электрики)
  • Участковый
  • Личные телефоны жильцов

7. Планировщик задач (APScheduler)

  • Еженедельный экспорт JSON (воскресенье 03:00)
  • Ежедневная проверка шпионов (02:00)
  • Обновление активности (ежечасно)

8. Мониторинг чата

  • Перехват всех сообщений
  • Подсчёт message_count
  • Обновление last_seen
  • Уведомления о новых участниках

9. Инфраструктура

  • Прокси (socks5 через xray)
  • Логирование в logs/bot.log
  • Скрипты управления: run.sh, start.sh, stop.sh
  • Виртуальное окружение (venv)

📁 Структура проекта v1.0

domovoy_bot/
├── config.py                 # Конфигурация (токен, админы, прокси)
├── main.py                   # Точка входа
├── requirements.txt          # Зависимости (8 пакетов)
├── .env                      # Переменные окружения
├── .env.example              # Пример .env
├── VERSIONS.md               # Этот файл
│
├── database/
│   ├── __init__.py
│   ├── db.py                 # Асинхронная сессия
│   ├── models.py             # Модели (6 таблиц)
│   └── init_db.py            # Инициализация БД
│
├── handlers/                 # Роутеры aiogram (9 файлов)
│   ├── __init__.py
│   ├── admin.py              # Админ-команды
│   ├── users.py              # Пользовательские команды
│   ├── phones.py             # Телефоны
│   ├── verification.py       # Верификация
│   ├── chat_monitor.py       # Мониторинг чата
│   ├── security.py           # Безопасность
│   ├── apartments.py         # Квартиры
│   └── antimat.py            # Анти-мат
│
├── services/
│   ├── __init__.py
│   ├── spy_detector.py       # Детект шпионов
│   ├── analytics.py          # Аналитика и экспорт
│   └── scheduler.py          # Планировщик
│
├── utils/
│   ├── __init__.py
│   ├── decorators.py         # @admin_only
│   ├── formatters.py         # Форматирование
│   └── validators.py         # Валидация
│
├── keyboards/
│   ├── __init__.py
│   ├── inline.py             # Inline-кнопки
│   ├── admin_menu.py         # Админ-меню
│   └── reply.py              # Reply-кнопки
│
├── data/
│   ├── phones.json           # Телефоны служб
│   ├── bad_words.json        # Чёрный список слов
│   └── spies_patterns.json   # Паттерны шпионов
│
├── logs/                     # Логи
├── exports/                  # JSON экспорты
├── backups/
│   └── versions/             # Версионные бекапы
└── venv/                     # Виртуальное окружение

📊 Метрики проекта v1.0

Показатель Значение
Строк кода ~3500
Файлов Python 25+
Таблиц БД 6
Хендлеров 30+
Команд бота 25+
Зависимостей 8 основных

🔄 История версий

v1.5 — Доска объявлений — 26 февраля 2026

Статус: Реализовано Бекап: backups/versions/v1.5_ads_2026-02-26/

Реализовано:

  • Модель Ad — объявления жильцов
  • 6 категорий (продам, куплю, отдам, потеряно, нашлось, услуга)
  • Пошаговое создание объявлений (/ad)
  • Просмотр всех объявлений (/ads)
  • Удаление своих объявлений (/ad_del)
  • Авто-удаление через 7 дней
  • Модерация для админов
  • Только для верифицированных

Файлы:

  • database/models.py — модель Ad
  • database/migrate_add_ads.py — миграция
  • handlers/ads.py — хендлеры
  • keyboards/inline.py — клавиатуры
  • services/scheduler.py — авто-удаление
  • ДОСКА_ОБЪЯВЛЕНИЙ.md — документация

Изменения:

  • 11 таблиц БД (было 10)
  • +1 хендлер (ads_router)
  • +4 команды

v1.4 — Расписание отключений — 26 февраля 2026

Статус: Реализовано Бекап: backups/versions/v1.4_schedule_2026-02-26/

Реализовано:

  • Модель Schedule — события отключений
  • 6 типов отключений (вода, свет, отопление, газ, лифт, общее)
  • Пошаговое создание событий (/schedule_add)
  • Просмотр расписания (/график, /schedule)
  • Удаление событий (/schedule_del)
  • Авто-напоминания за 1 час до начала
  • Inline-меню для выбора типа

Файлы:

  • database/models.py — модель Schedule
  • database/migrate_add_schedules.py — миграция
  • handlers/schedule.py — хендлеры
  • keyboards/inline.py — клавиатуры
  • services/scheduler.py — напоминания
  • РАСПИСАНИЕ_ОТКЛЮЧЕНИЙ.md — документация

Изменения:

  • 10 таблиц БД (было 9)
  • +1 хендлер (schedule_router)
  • +4 команды

v1.3 — Анти-спам лимиты — 26 февраля 2026

Статус: Реализовано Бекап: backups/versions/v1.3_rate_limits_2026-02-26/

Реализовано:

  • Сервис RateLimiter — подсчёт сообщений за период
  • Авто-удаление сообщений при превышении лимита (10 за 60 сек)
  • Система предупреждений (2 → мут на 30 мин)
  • Автоматическая проверка истечения мута
  • Команды: /mute, /unmute, /check_mute, /muted
  • Команды: /rate_stats, /user_rate, /clear_rate_warnings

Файлы:

  • services/rate_limiter.py — сервис лимитов
  • handlers/ratelimit.py — хендлеры
  • handlers/chat_monitor.py — проверка лимитов
  • database/models.py — модель MessageRate
  • database/migrate_add_rate_limits.py — миграция
  • АНТИ-СПАМ_ЛИМИТЫ.md — документация

Изменения:

  • 9 таблиц БД (было 8)
  • +1 сервис (rate_limiter)
  • +1 хендлер (ratelimit_router)
  • +7 команд

v1.2 — Чёрный список ссылок — 26 февраля 2026

Статус: Реализовано Бекап: backups/versions/v1.2_antispam_2026-02-26/

Реализовано:

  • Чёрный список доменов (data/bad_domains.json)
  • Чёрный список паттернов (t.me/spam_, vk.com/scam_)
  • Чёрный список ключевых слов (спам-фразы)
  • Авто-удаление спам-сообщений
  • Система предупреждений (3 → бан)
  • Уведомление админа о каждом случае
  • Команды: /add_domain, /remove_domain, /domains, /patterns, /keywords
  • Команды: /warnings, /clear_warnings, /antispam_stats

Файлы:

  • data/bad_domains.json — чёрный список
  • services/antispam.py — сервис проверки
  • handlers/antispam.py — хендлеры
  • handlers/chat_monitor.py — проверка ссылок
  • database/models.py — модель SpamWarning
  • database/migrate_add_spam_warnings.py — миграция
  • ЧЁРНЫЙ_СПИСОК_ССЫЛОК.md — документация

Изменения:

  • 8 таблиц БД (было 7)
  • +1 сервис (antispam)
  • +1 хендлер (antispam_router)
  • +12 команд

v1.1 — Опросы и голосования — 26 февраля 2026

Статус: Зафиксировано Бекап: backups/versions/v1.0_mvp_2026-02-26/

Реализовано:

  • Полный MVP функционал
  • Безопасность (анти-мат, детект шпионов)
  • Рейтинг пользователей
  • Админ-панель с рассылкой
  • Учёт квартир и жильцов
  • Телефоны служб и мастеров

Известные ограничения:

  • Нет точной даты создания аккаунта Telegram (API не отдаёт)
  • Детект офисных часов требует доработки
  • AI-юрист отложен на v2.0

📝 Процесс разработки

Рабочий цикл:

  1. Фиксация версии → бекап текущей версии
  2. Реализация функции → код + тесты
  3. Проверка → тестирование на пустой группе (админ + 1 пользователь)
  4. Приёмка → подтверждение от заказчика
  5. Документирование → обновление VERSIONS.md
  6. Бекап → копия в backups/versions/vX.X/

Тестовое окружение:

  • Группа: Тестовая (2 участника)
  • Админ: matrixhasyou
  • Пользователь: друг (тестовый аккаунт)

Критерии приёмки функции:

  • Функция работает в тестовой группе
  • Нет ошибок в логах
  • Админ получает уведомления
  • Пользователь получает обратную связь
  • Документация обновлена

🎯 Следующая версия: v1.2

План: Чёрный список ссылок

Функционал:

  • Файл data/bad_domains.json со списком доменов
  • Проверка всех сообщений на наличие ссылок
  • Авто-удаление сообщений со спам-доменами
  • Предупреждение пользователю в личку
  • Учёт предупреждений (3 → бан)
  • Команды: /add_domain, /remove_domain, /domains

Статус: Ожидает реализации


Дата последнего обновления: 26 февраля 2026 г. Версия документа: 1.0