Skip to content

cucumberian/gorzdrav_spb_checkbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Горздрав СПб бот

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

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

  • склонировать или скопировать репозиторий

    git clone <repository-url>
    cd <repository-folder>
  • создать .env файл в корне проекта

    BOT_TOKEN="ваш телеграм токен от @BotFather"
    DB_FILE="sqlite.db"
    CHECKER_TIMEOUT_SECS=60
  • создать виртуальное окружение

    python -m venv venv
  • активировать виртуальное окружение

    Linux

    source venv/bin/activate

    Windows

    venv\Scripts\activate
  • установить зависимости

    # Установить зависимости
    pip install -r requirements.txt
  • Запуск

    python3 src/app.py

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

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

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

Функционал

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

Команды бота

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

База данных

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

API

Gorzdrav API

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

Примеры запросов к горздраву

Особенности

При получении списка докторов на сайте горздрава, можно сразу получить информацию о количестве у них свободных мест в поле freeParticipantCount. Далее при выборе места для записи запрашивается информация о appointments. Но количество appointments может отличаться от количества свободных номерков freeParticipantCount в поле доктора. Т.е. в списке докторов у него может не быть свободных номерков, но быть несколько свободных appointments.

Тесты

Запуск тестов

cd src
python -m pytest .

Releases

  • v1.2.2 - фикс модели ApiAppointment
  • v1.2.0 - Автоматически отключаются проверку у пользователей, которых не было видно больше 2х месяцев
  • v1.1.0 - Добавлена возможность устанавливать количество дней в пределах которого ищется талончик от текущего дня. (в БД появилась новая колонка у пользователя)

About

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

Topics

Resources

Stars

Watchers

Forks

Contributors