Краткое описание функционала программы:Программа должна сохранять всю необходимую информацию о матче по настольному теннису в json-файл, далее отбирать матчи, соответствующие критериям, и сохранять их в отдельный json-файл. После чего вся необходимая информация о матчах должна выводиться в телеграм бота в зависимости от выбранного режима работы. Программа должна быть загружена на сервер. Сбор данных, сопоставление критериев и телеграм бот должны быть реализованы в отдельных файлах. Если что- то непонятно, то пожалуйста спрашивайте!!!Требования:Знание языка программирования Python и библиотек для парсинга Бот должен быть выполнен с помощью модуля AiogramКомментирование кодаИнформация по каждому матчу, которую нужно спарсить и сохранить в json файл:Номер (порядковый номер матча в файле)ДатаВремяЛигаИгрок 1Игрок 2Количество очных встреч (обязательный пункт «показать все», учитывают только сыгранные игры)Средний счет очных встреч (находим среднее арифметическое выигранных партий каждого игрока)Средний тотал очных встреч (находим среднее арифметическое тоталов каждой игры)Форма последних матчей игрока 1 (отношение побед к количеству игр за последние 5 матчей)Форма последних матчей игрока 2 (отношение побед к количеству игр за последние 5 матчей)Тотал последних матчей игрока 1 (средний тотал за последние 5 матчей)Тотал последних матчей игрока 2 (средний тотал за последние 5 матчей)Классическая вероятность победы игрока (рассчитать на основ личных встреч. смотрим кто выигрывал больше и определяем фаворита. Вероятность = количество побед фаворита / количество очных встреч)Прогноз (П1 или П2: выбираем большую вероятность победы одного из игроков)Коэффициент нужного исхода (определяем на основе прогноза)Счет игрыСчет каждого сетаТоталРезультат матча (если совпал с прогнозом, то «+», если не совпал, то «-»)Выигранные поинтыМаксимум очков подрядСравняли счетБольший отрывСсылка на матч Парсим до начала матча:НомерДатаВремяЛигаИгрок AИгрок BКоличество очных встречСредний счет очных встречСредний тотал очных встречФорма последних матчей игрока АФорма последних матчей игрока ВТотал последних матчей игрока АТотал последних матчей игрока ВКлассическая вероятность победы игрока Прогноз (вычислить на основе личных встреч)Коэффициент нужного исходаСсылка на матч Парсим после окончания матча:Счет игрыСчет каждого сетаТоталРезультат матчаВыигранные поинтыМаксимум очков подрядСравняли счетБольший отрывКритерии отбора матча (Все критерии должны быть переменными для поселяющей удобной перенастройки бота):За последний год должно быть сыграно не менее 3 очных встреч (количество матчей указывается отдельной переменной)Один из игроков должен побеждать другого не менее чем в 70% случаев за весь период времени или не менее 70% за последние десять матчей исходя из статистики на сайте (вероятности указываются отдельной переменной)Минимальный коэффициент 1,15 (указывается отдельной переменной)Режимы работы телеграм бота (выбирается в боте с помощью кнопок):Лайв (публикуется каждый, отобранный согласно критериям, матч отдельно за 15 минут до его начала по заданному шаблону сообщения)Линия (отправляет Excel файл со всеми, отобранными согласно критериям, матчами, которые играются в текущий день)Выборка (отправляет ссылки для загрузки Excel файл и json-файла со всеми, отобранными согласно критериям, матчами за все время)Датафрейм (отправляет ссылки для загрузки Excel файл и json-файла со всеми матчами за все время)Шаблон для вывода информации о матче в телеграм бота: Матч: №1Дата: 26.06.2023Вемя: 16:10Лига: TT Elite SeriesKlos P. - Grela A.Средний тотал: 77Средний счет: 1-3Кол-во матчей: 7Форма: 0.6 - 0.8Тоталы: 65 - 82Вероятность: 0.71Прогноз: П2КФ: 1.50Ссылка: https://www.sofascore.com/ru/grela-klos/NTVbslIZb#11378436