feat: add Kurigram property notification bot

This commit is contained in:
Azimkin
2026-09-22 17:25:03 +02:00
commit bbaa093a85
17 changed files with 1038 additions and 0 deletions

36
README.md Normal file
View File

@@ -0,0 +1,36 @@
# Kurigram Property Bot
Бот получает события `listing.new` из WebSocket API проекта `scrap-property` и
рассылает новые объявления всем подписанным Telegram-чатам.
## Подготовка
1. Заполните Telegram credentials в созданном `config.toml`. Для повторного
развёртывания используйте `config.example.toml`; рабочий конфиг и
SQLite-база игнорируются Git.
2. Установите зависимости: `uv sync --python 3.12`.
3. Запустите: `uv run property-bot --config config.toml`.
На Linux бот запускается через `uvloop`. На Windows `uvloop` не поддерживается,
поэтому для локальной разработки автоматически используется стандартный цикл
`asyncio`.
`scrap-property` должен быть доступен до запуска бота; его WebSocket URL
задаётся в `[property_api]`.
## Команды
- `/start` — включить уведомления;
- `/subscribe` — включить уведомления повторно;
- `/unsubscribe` — отключить уведомления;
- `/status` — показать состояние подписки; админам — также состояние API;
- `/test` — отправить вызывающему тестовую карточку.
Подписка относится к чату, из которого вызвана команда. Любой чат может
подписаться. Администраторы задаются списком Telegram user ID в TOML.
## Проверка
```powershell
uv run pytest
```