Skip to content

Latest commit

 

History

History
50 lines (39 loc) · 5.23 KB

README.md

File metadata and controls

50 lines (39 loc) · 5.23 KB

checking_resources_bot

Телеграм-бот обеспечивает проверку доступности интернет-ресурсов путём обращения к их URL.

Функциональность бота:

  • раз в заданный период опрашивается список ресурсов;
  • анализируется ответ от ресурсов по кодам HTTP;
  • о недоступности ресурсов передаётся сообщение в Telegram по заданным id пользователей;
  • об ошибках бота передаётся сообщение в Telegram по заданному id админа;
  • имеется 3 кнопки для пользователей:
    • подписаться\отписаться на рассылку информации о статусе интернет-ресурсов;
    • получить информацию о результатах последней проверки;
    • получить информацию об URL проверяемых интрернет-ресурсов и периодичности проверки;
  • работа логируется.

Для запуска требуется:

  1. создать файл .env и записать токен учётной записи Телеграм-бота. Формат: TELEGRAM_TOKEN=<token>. Пример заполнения файла см. .env.example.

  2. заполнить файл setup.cfg параметрами:

  • [default]:
    • retry_time - период проверки доступности ресурсов в часах. Формат: целое число от 1 до 99.
  • [tg_setting]:
    • admin_tg_id - Ид учётной записи Телеграм администратора бота. Вввести Ид одной учётной записи.
    • subscription_tg_ids - Ид учётных записей Телеграм пользователей бота, получающих рассылку сообщений о недоступености ресурсов. Ввести как минимум Ид одной учётной записи.
    • tzone - часовая зона для отображения метки времени последней проверки доступности ресурсов. Формат: в соответствие с названием зоны пакет pytz.
    • endpoints - список URL по которым должна выполняться проверка. Ввести как минимум один URL.
  • [log_setting]:
    • log_level - название уровня журналирования в соответствие с требованиями пакета logging.
    • log_format - формат сообщений в файле журнала соответствие с требованиями пакета logging.
    • logs_directory_path - директория для хранения файлов журнала.
    • log_size - размер лог-файла в байтах.
    • backup_сount - резервное количество лог-файлов.

Пример заполнения файла см. setup.cfg.example.

  1. через терминал в папке проекта создать и запустить виртуальное окружение (далее окружение):
  • установить окружение командой pip install pipenv или pip install --user pipenv. Дождаться установки. В ответ должно быть сообщено место установки окружения. Проверить информацию об окружении командой pipenv --venv.
  • активировать окружение командой pipenv shell. Должно отобразиться сообщение "Launching subshell in virtual environment...". При повторном выполнении команды должно отобразиться сообщение "Shell for C:/<путь к папке с вирт. окружением> already activated".
  • установить зависимости командой pipenv sync --dev. По результатам установки должно отобразиться сообщение "All dependencies are now up-to-date!" и в папке окружения ~\Lib\site-packages должны установиться требуемые пакеты.
  1. из папки проекта запустить модуль через pipenv run python bot.py.

  2. Для остановки бота в терминале нажать Ctrl+C при этом использованная версия библиотеки Телеграм не позволяет корректно завершить процесс и для перезапуска требуется запустить новый терминал и выполнить команды:

  • pipenv shell,
  • pipenv run python bot.py

Перечень зависимостей указан в файле Pipfile.

Больше информации о виртуальном окружении pipenv по ссылке https://pipenv.pypa.io/en/latest/.