✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
207 lines
5.5 KiB
Markdown
207 lines
5.5 KiB
Markdown
# 🏠 Домовой Бот
|
||
|
||
Бот для чата жильцов многоквартирного дома.
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### 1. Установка зависимостей
|
||
|
||
```bash
|
||
cd /home/matrixhasyou/domovoy_bot
|
||
python3 -m venv venv
|
||
source venv/bin/activate # Linux
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. Настройка
|
||
|
||
1. Получите токен бота у [@BotFather](https://t.me/BotFather)
|
||
2. Узнайте свой Telegram ID через [@userinfobot](https://t.me/userinfobot)
|
||
3. Узнайте ID чата дома (перешлите сообщение из чата боту @GetMyChatIdBot)
|
||
4. Отредактируйте `.env`:
|
||
|
||
```ini
|
||
BOT_TOKEN=ваш_токен_от_BotFather
|
||
ADMIN_CHAT_ID=-1001234567890 # ID чата дома
|
||
ADMIN_USER_ID=123456789 # Ваш ID
|
||
```
|
||
|
||
### 3. Инициализация БД
|
||
|
||
```bash
|
||
python database/init_db.py
|
||
```
|
||
|
||
### 4. Запуск
|
||
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
---
|
||
|
||
## 📱 Команды
|
||
|
||
### Для жильцов:
|
||
| Команда | Описание |
|
||
|---------|----------|
|
||
| `/start` | Регистрация и главное меню |
|
||
| `/помощь` | Справка по командам |
|
||
| `/телефон` | Экстренные службы |
|
||
| `/мастера` | Сантехники, электрики |
|
||
| `/моя_квартира` | Проверка привязки |
|
||
|
||
### Для админа:
|
||
| Команда | Описание |
|
||
|---------|----------|
|
||
| `/admin` | Панель администратора |
|
||
| `/stats` | Статистика чата |
|
||
| `/spies` | Подозрительные пользователи |
|
||
| `/export` | Экспорт JSON |
|
||
| `/users` | Список жильцов |
|
||
| `/verify` | Заявки на верификацию |
|
||
|
||
---
|
||
|
||
## 🕵️ Детект шпионов
|
||
|
||
Бот автоматически анализирует пользователей по факторам:
|
||
|
||
| Фактор | Баллы |
|
||
|--------|-------|
|
||
| Нет аватарки | +10 |
|
||
| Стандартный ник (user12345) | +15 |
|
||
| Не прошёл верификацию >24ч | +25 |
|
||
| Активность только 9-18 пн-пт | +15 |
|
||
| Провокационные сообщения в пользу УК | +30 |
|
||
|
||
**Пороги:**
|
||
- 0-30: 🟢 Норма
|
||
- 31-60: 🟡 Подозрительно
|
||
- 61+: 🔴 Шпион! (уведомление админу)
|
||
|
||
---
|
||
|
||
## 📊 Экспорт данных
|
||
|
||
Еженедельно (воскресенье 03:00) бот создаёт JSON-файл в папке `exports/`:
|
||
|
||
```json
|
||
{
|
||
"export_date": "2026-02-23T03:00:00",
|
||
"users": [...],
|
||
"messages": [...]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
domovoy_bot/
|
||
├── config.py # Конфигурация
|
||
├── main.py # Точка входа
|
||
├── requirements.txt # Зависимости
|
||
├── .env # Переменные окружения
|
||
│
|
||
├── database/
|
||
│ ├── models.py # SQLAlchemy модели
|
||
│ ├── db.py # Подключение к БД
|
||
│ └── init_db.py # Инициализация
|
||
│
|
||
├── handlers/
|
||
│ ├── admin.py # Админские команды
|
||
│ ├── users.py # Пользовательские команды
|
||
│ ├── verification.py # Верификация жильцов
|
||
│ └── chat_monitor.py # Мониторинг чата
|
||
│
|
||
├── services/
|
||
│ ├── spy_detector.py # Детект шпионов
|
||
│ ├── analytics.py # Аналитика и экспорт
|
||
│ └── scheduler.py # Планировщик задач
|
||
│
|
||
├── keyboards/
|
||
│ ├── inline.py # Inline-кнопки
|
||
│ └── reply.py # Reply-кнопки
|
||
│
|
||
├── utils/
|
||
│ ├── decorators.py # Декораторы
|
||
│ ├── formatters.py # Форматирование
|
||
│ └── validators.py # Валидация
|
||
│
|
||
├── data/
|
||
│ ├── phones.json # Телефоны служб
|
||
│ └── spies_patterns.json # Паттерны шпионов
|
||
│
|
||
├── logs/ # Логи
|
||
├── exports/ # JSON экспорты
|
||
└── backups/ # Бэкапы БД
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 Настройка телефонов
|
||
|
||
Отредактируйте `data/phones.json` или добавьте через БД:
|
||
|
||
```json
|
||
{
|
||
"emergency": [
|
||
{"name": "Диспетчер УК", "phone": "+7 (XXX) XXX-XX-XX"}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 🛡 Безопасность
|
||
|
||
- Персональные данные хранятся только локально
|
||
- Доступ к админ-функциям только по `ADMIN_USER_ID`
|
||
- Экспорты JSON в защищённой папке
|
||
|
||
---
|
||
|
||
## 📝 Логи
|
||
|
||
Логи сохраняются в `logs/bot.log`
|
||
|
||
---
|
||
|
||
## 🔄 Автозапуск (systemd)
|
||
|
||
Создайте `/etc/systemd/system/domovoy-bot.service`:
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=Domovoy Bot
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=matrixhasyou
|
||
WorkingDirectory=/home/matrixhasyou/domovoy_bot
|
||
ExecStart=/home/matrixhasyou/domovoy_bot/venv/bin/python main.py
|
||
Restart=always
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
```bash
|
||
sudo systemctl enable domovoy-bot
|
||
sudo systemctl start domovoy-bot
|
||
sudo systemctl status domovoy-bot
|
||
```
|
||
|
||
---
|
||
|
||
## 📞 Поддержка
|
||
|
||
Вопросы и предложения: @your_contact
|
||
|
||
---
|
||
|
||
**Версия:** 1.0
|
||
**Лицензия:** MIT
|