32 lines
1.8 KiB
Markdown
32 lines
1.8 KiB
Markdown
# Исходный код затупса
|
||
> Прошлая история была удалена
|
||
|
||
# Запуск
|
||
```sh
|
||
cp config.example.py config.py
|
||
```
|
||
Далее заполнить конфиг
|
||
```
|
||
uv run main.py
|
||
```
|
||
|
||
Запускает два процесса:
|
||
- `eventloop` (`./event/__init__.py:run`) для отправки уведомлений и различных cron-like задач
|
||
- `mainloop` (`./bot/__init__.py:run`) сам бот
|
||
|
||
## Решение проблем
|
||
- Если не работает рассылка с json то надо создать папку `./temp` руками
|
||
- Оно вообще не запустится без бекенда расписания, при желании его можно зареверсить из этого исходного кода, либо я когда-нибудь сделаю версию без парсеров
|
||
|
||
## Карта и навигатор
|
||
|
||
Карта использует статичную светлую тему и не зависит от Telegram theme
|
||
переменных. Вкладка «Навигатор» отправляет в бот проверенный JSON-запрос
|
||
`route.request` через `Telegram.WebApp.sendData`. Обработчик находится в
|
||
`bot/navigator.py`, а протокол — в `models/navigator.py`.
|
||
|
||
Скомпилированный граф хранится локально в игнорируемом файле
|
||
`web/map/data/navigator.json`. `calculate_route` строит путь по нему без
|
||
сетевых запросов; внешний API навигатора используется только как эталон при
|
||
проверке. UI получает номера этажей и индексы точек и рисует маршрут по
|
||
координатам из того же manifest.
|