32 lines
1.9 KiB
Markdown
32 lines
1.9 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`: этот файл
|
||
одновременно читают бот и WebView. `calculate_route` строит путь без сетевых
|
||
запросов; внешний API навигатора используется только как эталон при проверке.
|
||
UI получает номера этажей и индексы точек и рисует маршрут по координатам из
|
||
того же manifest. SVG этажей содержат соответствующую группу `#Точки`.
|