✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
194 lines
6.9 KiB
Markdown
194 lines
6.9 KiB
Markdown
# Контекст сессии разработки
|
||
|
||
**Последнее обновление:** вторник, 24 февраля 2026 г. (вечер)
|
||
**Время:** ~11:00
|
||
|
||
---
|
||
|
||
## 📊 Описание проекта: Домовой Бот
|
||
|
||
Telegram-бот для управления жилым сообществом (дом/ЖК).
|
||
|
||
### Архитектура
|
||
- **Фреймворк:** aiogram 3.x (асинхронный)
|
||
- **База данных:** SQLite + SQLAlchemy (async)
|
||
- **Прокси:** socks5 (xray) для обхода РКН
|
||
- **Планировщик:** APScheduler
|
||
|
||
### Структура проекта
|
||
```
|
||
domovoy_bot/
|
||
├── config.py # Конфигурация (токен, админы, прокси)
|
||
├── main.py # Точка входа
|
||
├── requirements.txt # Зависимости
|
||
├── .env / .env.example # Переменные окружения
|
||
│
|
||
├── database/
|
||
│ ├── models.py # Модели: User, Message, Service, VerificationRequest, SpyLog, Announcement
|
||
│ ├── db.py # Асинхронная сессия
|
||
│ └── init_db.py # Инициализация БД
|
||
│
|
||
├── handlers/ # Роутеры aiogram
|
||
│ ├── admin.py # Админ-команды
|
||
│ ├── users.py # Пользовательские команды
|
||
│ ├── phones.py # Управление телефонами
|
||
│ ├── verification.py # Верификация жильцов
|
||
│ ├── chat_monitor.py # Мониторинг чата
|
||
│ ├── security.py # Безопасность/анти-мат
|
||
│ ├── apartments.py # Квартиры
|
||
│ └── antimat.py # Анти-мат
|
||
│
|
||
├── services/
|
||
│ ├── spy_detector.py # Детект шпионов (score 0-100)
|
||
│ ├── analytics.py # Аналитика чата
|
||
│ └── scheduler.py # Планировщик задач
|
||
│
|
||
├── utils/
|
||
│ ├── decorators.py # @admin_only
|
||
│ ├── formatters.py # Форматирование вывода
|
||
│ └── validators.py # Валидация телефонов
|
||
│
|
||
└── keyboards/ # Inline/reply клавиатуры
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Реализованный функционал
|
||
|
||
### 1. Пользователи
|
||
- Регистрация через `/start`
|
||
- Верификация по номеру квартиры
|
||
- Привязка телефона (`/myphone`, `/add_phone`, `/edit_phone`, `/remove_phone`)
|
||
- Профиль пользователя с квартирой и сообщением
|
||
|
||
### 2. Детект шпионов (Spy Detector)
|
||
**Факторы риска:**
|
||
- Нет аватарки: +10
|
||
- Generic username (user12345): +15
|
||
- Не верифицирован: +25
|
||
- Провокационные сообщения: +30
|
||
- Активность в офисные часы: +15
|
||
- Мультиаккаунт: +50
|
||
|
||
**Пороги:**
|
||
- 0-30: Норма 🟢
|
||
- 31-60: Подозрительный 🟡
|
||
- 61+: Шпион 🔴 (уведомление админа)
|
||
|
||
### 3. Админ-панель
|
||
- `/admin` — главное меню
|
||
- `/stats` — статистика чата
|
||
- `/spies` — список шпионов
|
||
- `/users` — пользователи (50 последних)
|
||
- `/export` — экспорт в JSON
|
||
- `/revoke <ID>` — снять верификацию
|
||
- `/phone <ID>` — показать телефон
|
||
|
||
### 4. Телефоны
|
||
- **Команды админа:**
|
||
- `/add_phone <ID> <тел>` — добавить
|
||
- `/edit_phone <ID> <тел>` — изменить
|
||
- `/remove_phone <ID>` — удалить
|
||
- `/phone <ID>` — показать
|
||
|
||
- **Команда пользователя:**
|
||
- `/myphone <тел>` — установить свой телефон
|
||
|
||
### 5. Планировщик
|
||
- Еженедельный экспорт (воскресенье 03:00)
|
||
- Ежедневная проверка шпионов (02:00)
|
||
- Обновление активности (ежечасно)
|
||
|
||
---
|
||
|
||
## ✅ Выполнено в этой сессии
|
||
|
||
### Система рейтинга пользователей (24.02.2026)
|
||
**Реализовано:**
|
||
1. ✅ Добавлены поля в модель User: `rating` (баллы), `level` (уровень)
|
||
2. ✅ Миграция БД выполнена — поля добавлены
|
||
3. ✅ Начисление +1 балл за каждое сообщение
|
||
4. ✅ Уровни: Новичок (0-99), Сосед (100-499), Активист (500-999), Лидер (1000+)
|
||
5. ✅ Админ-команды (только в личку!):
|
||
- `/rating <ID>` — рейтинг пользователя
|
||
- `/top` — топ-10 по рейтингу
|
||
- `/rank` — распределение по уровням
|
||
6. ✅ Кнопка "🏆 Рейтинг" в меню админа
|
||
7. ✅ Защита: только админ, только в личке
|
||
|
||
**Документация:** `РЕЙТИНГ.md`
|
||
|
||
---
|
||
|
||
## ⏳ В работе (текущая задача)
|
||
|
||
### Дописывание телефонов админом
|
||
**Уже реализовано:**
|
||
- ✅ `/add_phone <ID> <тел>`
|
||
- ✅ `/edit_phone <ID> <тел>`
|
||
- ✅ `/remove_phone <ID>`
|
||
- ✅ `/phone <ID>`
|
||
- ✅ `/myphone <тел>` (пользователь сам)
|
||
|
||
**Требуется:**
|
||
- Интеграция с системой рейтинга
|
||
- Отображение рейтинга в профиле
|
||
- Команды для управления рейтингом
|
||
|
||
---
|
||
|
||
## 📁 Файлы сессии
|
||
|
||
| Файл | Назначение |
|
||
|------|------------|
|
||
| `SESSION_CONTEXT.md` | Этот файл — контекст сессии |
|
||
| `STATUS.md` | Общий статус проекта |
|
||
| `ГОТОВО.md` | Инструкция по запуску |
|
||
| `ИСПРАВЛЕНИЯ*.md` | История исправлений |
|
||
| `ВЕРИФИКАЦИЯ*.md` | Заметки по верификации |
|
||
|
||
---
|
||
|
||
## 🚀 Команды для запуска
|
||
|
||
```bash
|
||
cd /home/matrixhasyou/domovoy_bot
|
||
|
||
# Проверка логов
|
||
tail -f logs/bot.log
|
||
|
||
# Запуск
|
||
./run.sh
|
||
# или
|
||
python main.py
|
||
|
||
# Остановка
|
||
./stop.sh
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 Конфигурация
|
||
|
||
**Файл:** `.env`
|
||
```ini
|
||
BOT_TOKEN=xxx:xxx
|
||
ADMIN_CHAT_ID=-100xxxxxxxxx
|
||
ADMIN_USER_ID=xxxxxxxxx
|
||
USE_PROXY=true
|
||
PROXY_TYPE=socks5
|
||
PROXY_HOST=127.0.0.1
|
||
PROXY_PORT=10808
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 Заметки сессии
|
||
|
||
- **Дата последней сессии:** 23 февраля 2026
|
||
- **Статус:** MVP готово, в работе система рейтинга
|
||
- **Следующая задача:** Доделать рейтинг + почистить VPN сервера от тестовых конфигов
|
||
|
||
---
|
||
|
||
*Этот файл обновляется в конце каждой сессии для сохранения контекста*
|