✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
16 KiB
📦 Версии домового бота
Проект: Домовой Бот для чата многоквартирного дома
Репозиторий: /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— модель Addatabase/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— модель Scheduledatabase/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— модель MessageRatedatabase/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— модель SpamWarningdatabase/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 пользователь)
- Приёмка → подтверждение от заказчика
- Документирование → обновление VERSIONS.md
- Бекап → копия в
backups/versions/vX.X/
Тестовое окружение:
- Группа: Тестовая (2 участника)
- Админ: matrixhasyou
- Пользователь: друг (тестовый аккаунт)
Критерии приёмки функции:
- Функция работает в тестовой группе
- Нет ошибок в логах
- Админ получает уведомления
- Пользователь получает обратную связь
- Документация обновлена
🎯 Следующая версия: v1.2
План: Чёрный список ссылок
Функционал:
- Файл
data/bad_domains.jsonсо списком доменов - Проверка всех сообщений на наличие ссылок
- Авто-удаление сообщений со спам-доменами
- Предупреждение пользователю в личку
- Учёт предупреждений (3 → бан)
- Команды:
/add_domain,/remove_domain,/domains
Статус: ⏳ Ожидает реализации
Дата последнего обновления: 26 февраля 2026 г. Версия документа: 1.0