Используется для обработки и отслеживания всех событий в боте (Абстракция надо запросами и их инкапсуляция)
Используется для взаимодействия с конкретными пользователями а так-же для организации очередей для переговоров
Используется для создания переговорных пар внутри изолированных групп и их администрирования
Инкапсулируют всю логику взаимодействия с отдельными пользователями
Исполняем файлом является test_serv.py Внутри него вызывается несколько базовых инстансов:
-
Экземляр класса bot (См документацию библиотеки telebot), инкапсулирующий в себе логику обработки стандартных запросов к REST API телеграмма через интерфейс класса, повторяющий методы API
-
Экземпляр класса Controller Данный класс инкапсулирует все нужные запросы, и предоставляет интерфейс для взаимодействия с БД. На данный момент имплементирована только версия для sqlite3, но в осное контроллера лежит sqlalchemy так что по идее перенос на полноценный SQL MariaDB или Postgre должен быть быстрым
-
Экземпляр класса GroupDispatcher Класс отвечает за распределение и работу с каждым пользователем внутри группы. Идентификатором юзера является уникальный id чата приходящий в JSON ответе от сервера, инстанс telebot предоставляет в виде пайтон объекта. Принцип работы Dispatcher:
- При инстанцировании объекта из базы данных (передается ссылка на объект контроллера) берется информация о созданных группах
- На основе инъекции строится карта распределения представленная в виде словаря {'group code': Экземпляр класса GroupQueue}
- С базы инджектится информация о пользователях и на ее основе заполняется класс GroupQueue соответсвующей группы
Ссылка на миро с блок схемой.
P.S Это мой нынешний продакшн код, так что прошу никому не показывать это