# 🏠 Домовой Бот

Бот для чата жильцов многоквартирного дома.

## 🚀 Быстрый старт

### 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
