✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
291 lines
11 KiB
Markdown
291 lines
11 KiB
Markdown
# 📊 Статус проекта: Домовой Бот
|
||
|
||
**Дата:** 26.02.2026
|
||
**Версия:** v1.0 MVP ✅ ЗАФИКСИРОВАНО
|
||
**Статус:** ✅ Готов к эксплуатации
|
||
**Бекап:** `backups/versions/v1.0_mvp_2026-02-26/`
|
||
|
||
---
|
||
|
||
## 📦 Версионирование
|
||
|
||
**Текущая версия:** v1.0 MVP (зафиксирована 26.02.2026)
|
||
**Следующая версия:** v1.1 (Опросы и голосования) — ⏳ Ожидает
|
||
|
||
**Документы:**
|
||
- `VERSIONS.md` — история версий
|
||
- `DEVELOPMENT_PLAN.md` — план разработки (v1.1 — v2.0)
|
||
- `PROCESS.md` — процесс разработки
|
||
- `backups/versions/` — бекапы версий
|
||
|
||
---
|
||
|
||
## ✅ Реализовано (MVP)
|
||
|
||
### 1. База данных и архитектура
|
||
- [x] Модели: User, Message, Service, VerificationRequest, SpyLog, Announcement
|
||
- [x] Асинхронная работа с SQLite (SQLAlchemy + aiosqlite)
|
||
- [x] Скрипт инициализации БД
|
||
- [x] Автоматическое создание таблиц при старте
|
||
|
||
### 2. Пользовательские функции
|
||
- [x] Регистрация жильцов через `/start`
|
||
- [x] Верификация по номеру квартиры
|
||
- [x] Inline-меню с кнопками
|
||
- [x] Команды: `/телефон`, `/мастера`, `/участковый`, `/график`, `/объявления`
|
||
- [x] Текстовые алиасы команд (понимает "телефон", "мастера" и т.д.)
|
||
- [x] Справка `/помощь`
|
||
|
||
### 3. Админские функции
|
||
- [x] `/admin` — панель администратора
|
||
- [x] `/stats` — статистика чата
|
||
- [x] `/spies` — список шпионов
|
||
- [x] `/export` — экспорт JSON
|
||
- [x] `/users` — список жильцов
|
||
- [x] `/verify` — заявки на верификацию
|
||
- [x] `/verify_approve` — подтверждение верификации
|
||
- [x] `/verify_reject` — отклонение верификации
|
||
|
||
### 4. Детект шпионов
|
||
- [x] Анализ по факторам (аватарка, ник, верификация, активность)
|
||
- [x] Подсчёт «рейтинга подозрительности» (0-100)
|
||
- [x] Автоматическое уведомление админа при score > 60
|
||
- [x] Логирование в таблицу SpyLog
|
||
- [x] Паттерны в JSON (настраиваемые)
|
||
|
||
### 5. Мониторинг чата
|
||
- [x] Перехват всех сообщений
|
||
- [x] Подсчёт message_count для пользователей
|
||
- [x] Обновление last_seen
|
||
- [x] Уведомления о новых участниках
|
||
- [x] Сохранение истории сообщений
|
||
|
||
### 6. Аналитика и экспорт
|
||
- [x] Еженедельный экспорт в JSON (по расписанию)
|
||
- [x] Принудительный экспорт по команде
|
||
- [x] Статистика: пользователи, сообщения, активность
|
||
- [x] Топ пользователей за период
|
||
|
||
### 7. Планировщик задач
|
||
- [x] Еженедельный экспорт (воскресенье 03:00)
|
||
- [x] Ежедневная проверка шпионов (02:00)
|
||
- [x] Ежечасное обновление активности
|
||
- [x] Уведомления админу о событиях
|
||
|
||
### 8. Безопасность
|
||
- [x] Декоратор `@admin_only` для защиты команд
|
||
- [x] Проверка прав через `config.is_admin()`
|
||
- [x] Поддержка списка админов (EXTRA_ADMIN_IDS)
|
||
- [x] Логирование всех действий
|
||
|
||
---
|
||
|
||
## ⏳ Отложено (будет в v2.0)
|
||
|
||
### AI-Юрист (NotebookLM)
|
||
- [ ] Интеграция с Google NotebookLM API
|
||
- [ ] Загрузка законов и кодексов
|
||
- [ ] Обработка юридических запросов
|
||
- [ ] Генерация шаблонов жалоб
|
||
|
||
### Дополнительные сервисы
|
||
- [ ] Бронирование ресурсов (колясочная, барбекю)
|
||
- [ ] Соседский маркетплейс (канал-витрина)
|
||
- [ ] Голосования и опросы
|
||
- [ ] Интеграция с ГИС ЖКХ
|
||
|
||
### Улучшения
|
||
- [ ] Геймификация (рейтинг соседа, баллы)
|
||
- [ ] Доступная среда (голос, перевод)
|
||
- [ ] Резервный канал (VK/SMS)
|
||
- [ ] Детект мультиаккаунтов по device ID
|
||
- [ ] Анти-мат и модерация контента
|
||
|
||
---
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
domovoy_bot/
|
||
├── config.py # Конфигурация ✅
|
||
├── main.py # Точка входа ✅
|
||
├── requirements.txt # Зависимости ✅
|
||
├── .env # Переменные окружения ✅
|
||
├── .env.example # Пример .env ✅
|
||
├── .gitignore # Игноры git ✅
|
||
├── run.sh # Скрипт запуска ✅
|
||
│
|
||
├── database/
|
||
│ ├── __init__.py ✅
|
||
│ ├── db.py ✅
|
||
│ ├── models.py ✅
|
||
│ └── init_db.py ✅
|
||
│
|
||
├── handlers/
|
||
│ ├── __init__.py ✅
|
||
│ ├── admin.py ✅
|
||
│ ├── users.py ✅
|
||
│ ├── verification.py ✅
|
||
│ └── chat_monitor.py ✅
|
||
│
|
||
├── services/
|
||
│ ├── __init__.py ✅
|
||
│ ├── spy_detector.py ✅
|
||
│ ├── analytics.py ✅
|
||
│ └── scheduler.py ✅
|
||
│
|
||
├── keyboards/
|
||
│ ├── __init__.py ✅
|
||
│ ├── inline.py ✅
|
||
│ └── reply.py ✅
|
||
│
|
||
├── utils/
|
||
│ ├── __init__.py ✅
|
||
│ ├── decorators.py ✅
|
||
│ ├── formatters.py ✅
|
||
│ └── validators.py ✅
|
||
│
|
||
├── data/
|
||
│ ├── phones.json ✅
|
||
│ └── spies_patterns.json ✅
|
||
│
|
||
├── logs/ # Пустая (логи)
|
||
├── exports/ # Пустая (экспорты)
|
||
├── backups/ # Пустая (бэкапы)
|
||
└── venv/ # Виртуальное окружение
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 Как запустить
|
||
|
||
### Быстрый старт:
|
||
```bash
|
||
cd /home/matrixhasyou/domovoy_bot
|
||
|
||
# 1. Настроить .env (заменить токены и ID)
|
||
nano .env
|
||
|
||
# 2. Запустить
|
||
./run.sh
|
||
```
|
||
|
||
### Первый запуск:
|
||
```bash
|
||
# 1. Инициализация БД
|
||
source venv/bin/activate
|
||
python database/init_db.py
|
||
|
||
# 2. Запуск бота
|
||
python main.py
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 Документация
|
||
|
||
| Файл | Описание |
|
||
|------|----------|
|
||
| `README.md` | Общая информация |
|
||
| `SETUP_GUIDE.md` | Пошаговая настройка |
|
||
| `TECHNICAL_SPECIFICATION.md` | Полное ТЗ |
|
||
| `PROJECT_STRUCTURE.md` | Структура проекта |
|
||
| `STATUS.md` | Этот файл |
|
||
|
||
---
|
||
|
||
## 🧪 Тестирование
|
||
|
||
### Чек-лист перед запуском:
|
||
|
||
- [ ] Заполнен `.env` (токен, ID)
|
||
- [ ] Бот добавлен в чат как администратор
|
||
- [ ] Телефоны в `data/phones.json` заменены на реальные
|
||
- [ ] Инициализация БД пройдена успешно
|
||
- [ ] Синтаксис проверен: `python -m py_compile main.py`
|
||
|
||
### Проверка функций:
|
||
|
||
1. **Регистрация:**
|
||
- Написать `/start` в чате
|
||
- Бот должен ответить приветствием
|
||
|
||
2. **Верификация:**
|
||
- Отправить боту номер квартиры (например: `45`)
|
||
- Админ получает уведомление
|
||
- Админ: `/verify_approve <user_id>`
|
||
- Жилец получает подтверждение
|
||
|
||
3. **Админка:**
|
||
- Команда `/admin` доступна только админу
|
||
- Обычным пользователям показывает «❌ Только для администраторов»
|
||
|
||
4. **Детект шпионов:**
|
||
- Добавить тестовый аккаунт без аватарки
|
||
- Подождать или проверить через `/spies`
|
||
|
||
5. **Экспорт:**
|
||
- Команда `/export`
|
||
- Проверить файл в `exports/`
|
||
|
||
---
|
||
|
||
## 🐛 Известные проблемы
|
||
|
||
| Проблема | Статус | Решение |
|
||
|----------|--------|---------|
|
||
| Нет точной даты создания аккаунта Telegram | ⚠️ Wont Fix | API не отдаёт, используем эвристики |
|
||
| Детект офисных часов требует доработки | ⏳ TODO | Нужен анализ временных меток сообщений |
|
||
| Нет интеграции с NotebookLM | ⏳ v2.0 | Отложено |
|
||
|
||
---
|
||
|
||
## 📈 Метрики проекта
|
||
|
||
| Показатель | Значение |
|
||
|------------|----------|
|
||
| Файлов Python | 20+ |
|
||
| Строк кода | ~2500 |
|
||
| Таблиц БД | 6 |
|
||
| Хендлеров | 25+ |
|
||
| Команд | 15+ |
|
||
| Зависимостей | 7 основных |
|
||
|
||
---
|
||
|
||
## 🎯 Следующие шаги
|
||
|
||
1. **Настроить .env** → вставить реальные токен и ID
|
||
2. **Запустить бота** → `./run.sh`
|
||
3. **Протестировать locally** → проверить все команды
|
||
4. **Добавить в чат** → как администратора
|
||
5. **Собрать фидбек** → от жильцов
|
||
6. **Доработать v2.0** → AI-юрист, маркетплейс, опросы
|
||
|
||
---
|
||
|
||
## 💡 Рекомендации
|
||
|
||
1. **Резервное копирование:**
|
||
```bash
|
||
# Раз в неделю копируй БД
|
||
cp database/domovoy.db backups/domovoy_$(date +%Y%m%d).db
|
||
```
|
||
|
||
2. **Мониторинг логов:**
|
||
```bash
|
||
tail -f logs/bot.log
|
||
```
|
||
|
||
3. **Обновление телефонов:**
|
||
- Через БД напрямую
|
||
- Или редактируй `data/phones.json` и перезапускай бота
|
||
|
||
4. **Безопасность:**
|
||
- Не коммить `.env` в git
|
||
- Ограничь доступ к папке `exports/`
|
||
- Регулярно делай бэкапы БД
|
||
|
||
---
|
||
|
||
**Проект готов к развёртыванию! 🚀**
|