Skip to content

python-basic/sem4-t3-TsirulikIvan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bot1

Справка по классам:

+ Класс telebot

Используется для обработки и отслеживания всех событий в боте (Абстракция надо запросами и их инкапсуляция)

+ Класс GroupDispatcher

Используется для взаимодействия с конкретными пользователями а так-же для организации очередей для переговоров

+ Класс GroupQueue

Используется для создания переговорных пар внутри изолированных групп и их администрирования

+ Класс User

Инкапсулируют всю логику взаимодействия с отдельными пользователями

Краткая справка:

Исполняем файлом является test_serv.py Внутри него вызывается несколько базовых инстансов:

  1. Экземляр класса bot (См документацию библиотеки telebot), инкапсулирующий в себе логику обработки стандартных запросов к REST API телеграмма через интерфейс класса, повторяющий методы API

  2. Экземпляр класса Controller Данный класс инкапсулирует все нужные запросы, и предоставляет интерфейс для взаимодействия с БД. На данный момент имплементирована только версия для sqlite3, но в осное контроллера лежит sqlalchemy так что по идее перенос на полноценный SQL MariaDB или Postgre должен быть быстрым

  3. Экземпляр класса GroupDispatcher Класс отвечает за распределение и работу с каждым пользователем внутри группы. Идентификатором юзера является уникальный id чата приходящий в JSON ответе от сервера, инстанс telebot предоставляет в виде пайтон объекта. Принцип работы Dispatcher:

  • При инстанцировании объекта из базы данных (передается ссылка на объект контроллера) берется информация о созданных группах
  • На основе инъекции строится карта распределения представленная в виде словаря {'group code': Экземпляр класса GroupQueue}
  • С базы инджектится информация о пользователях и на ее основе заполняется класс GroupQueue соответсвующей группы

Ссылка на миро с блок схемой.

P.S Это мой нынешний продакшн код, так что прошу никому не показывать это

About

sem4-t3-TsirulikIvan created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages