✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
6.9 KiB
6.9 KiB
Контекст сессии разработки
Последнее обновление: вторник, 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)
Реализовано:
- ✅ Добавлены поля в модель User:
rating(баллы),level(уровень) - ✅ Миграция БД выполнена — поля добавлены
- ✅ Начисление +1 балл за каждое сообщение
- ✅ Уровни: Новичок (0-99), Сосед (100-499), Активист (500-999), Лидер (1000+)
- ✅ Админ-команды (только в личку!):
/rating <ID>— рейтинг пользователя/top— топ-10 по рейтингу/rank— распределение по уровням
- ✅ Кнопка "🏆 Рейтинг" в меню админа
- ✅ Защита: только админ, только в личке
Документация: РЕЙТИНГ.md
⏳ В работе (текущая задача)
Дописывание телефонов админом
Уже реализовано:
- ✅
/add_phone <ID> <тел> - ✅
/edit_phone <ID> <тел> - ✅
/remove_phone <ID> - ✅
/phone <ID> - ✅
/myphone <тел>(пользователь сам)
Требуется:
- Интеграция с системой рейтинга
- Отображение рейтинга в профиле
- Команды для управления рейтингом
📁 Файлы сессии
| Файл | Назначение |
|---|---|
SESSION_CONTEXT.md |
Этот файл — контекст сессии |
STATUS.md |
Общий статус проекта |
ГОТОВО.md |
Инструкция по запуску |
ИСПРАВЛЕНИЯ*.md |
История исправлений |
ВЕРИФИКАЦИЯ*.md |
Заметки по верификации |
🚀 Команды для запуска
cd /home/matrixhasyou/domovoy_bot
# Проверка логов
tail -f logs/bot.log
# Запуск
./run.sh
# или
python main.py
# Остановка
./stop.sh
🔧 Конфигурация
Файл: .env
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 сервера от тестовых конфигов
Этот файл обновляется в конце каждой сессии для сохранения контекста