37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# 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
|
||
```
|