cucumberian / gorzdrav_spb_checkbot

Телеграм бот для проверки талончиков к врачу.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Бот для телеграм для проверки талонов к врачу через апи в горздраве.

Установка и запуск

Конфигурация программы

Настройки для запуска программы хранятся в файлу config.py.

Параметр Описание
bot_token токен телеграм бота от @BotFather
db_file имя файла базы данных (создается новый если файла нет)
checker_timeout_secs период проверки свободных талончиков черех api горздрава

Запуск

Установите настройки в файле config.py или в системных переменных. Затем установите необходимые зависимости из файла requirements.txt и запустите app.py через интерпретатор Python:

python3 -m pip install -r requirements.txt
python3 app.py

Функционал

Бот проверяет периодически доступность талончиков к врачу и выводит оповещение в телеграм пользователю, если у врача есть свободные талончики.

Команды бота

Команда Описание
/status немедленный статус врача
/on включить отслеживание свободных мест для записи
/off отключить отслеживание свободных мест для записи
/help помощь

База данных

  • хранит настройки каждого пользователя:
    • настройки для поиска
    • включен ли поиск
  • сущности для поиска - это врач с его ид, номером мед учреждения и номером специальности

API

Github API

https://github.com/egorantonov/gorzdrav/wiki/SPB-Gorzdrav-API-Documentation

Сделать

  • бот должен выдавать ссылку на врача, как только у него появятся талончики для этого надо узнать в каком районе он находится. Просмотреть все районы - составить список медицинских учреждений и найти то, в котором он есть. Можно закешировать выхов функции получения списка районов и списка медицинских учреждений в каждом районе.

  • оптимизация.

    • Каждый доктор может оказаться в одной и той же поликлинике. Можно кешировать запросы к спискам докторов .get_doctors(hospital_id, speciality_id, time_minutes) в пределах нескольких минут, чтобы не делать несколько запросов к одной и той же поликлинике. Если указывать текущее время в минутах, то будет работать функция lru_cache.
    • можно (нужно) кешировать список районов и список поликлиник в районах, чтобы не делать повторных запросов. Предположим можно делать это раз в день.
  • проверку не только определенного врача но и всей врачебной специальности

  • выбор с помощью кнопок района > мед. учереждения > специальности > врача

Issues

  • есть доктор, у которого id не число - п99.553 - в 99 поликлинке выборргского района https://gorzdrav.spb.ru/service-free-schedule#%5B%7B%22district%22:%223%22%7D,%7B%22lpu%22:%22191%22%7D,%7B%22speciality%22:%2259%22%7D,%7B%22doctor%22:%22%D0%BF99.553%22%7D%5D Надо исправить все ид на строковый тип. В этой поликилинике у всех врачей строковый ид.

About

Телеграм бот для проверки талончиков к врачу.


Languages

Language:Python 99.6%Language:Dockerfile 0.4%