https://github.com/mom1/order_tele_bot
I study OOP patterns and telegram api
https://github.com/mom1/order_tele_bot
Last synced: 3 months ago
JSON representation
I study OOP patterns and telegram api
- Host: GitHub
- URL: https://github.com/mom1/order_tele_bot
- Owner: mom1
- Created: 2019-09-29T12:00:22.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T07:35:25.000Z (over 2 years ago)
- Last Synced: 2025-01-03T14:26:57.721Z (5 months ago)
- Language: Python
- Homepage:
- Size: 135 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: readme.txt
Awesome Lists containing this project
README
Запуск телеграмбота:
1. Установить все зваисимости из pyproject.toml (poetry)
2. (Опционально) Включить прокси (так как api и сам телеграмм бот под санкциями в РФ)
3. Указать токен вашего бота в /order_tele_bot/config/settings.py TOKEN
4. Указать имя вашего бота в /order_tele_bot/config/settings.py NAME_BOT
5. Запустить order_tele_bot/main.py
6. Открыть телеграм(месенджер) и в поиске найти сам бот (@имя вашего бота)
7. Нажать старт.Паттерны и Структура:
1. /order_tele_bot/main.py Класс OrderBot Одиночка2. /order_tele_bot/router.py
2.1 Класс Router - одиночка и что то типо фасада.
Классы из 4.3 регистрируются в нем, он же в свою очередь регистрирует их в целевом подписчике
если тот указан или в моммент уго указания. Может принимать классы и перед регистрацией инстанцировать их.3. /order_tele_bot/markup.py
3.1 Класс Keyboards - Стратегия/Строитель Router из 2.1 регистрирует классы из 4.3 в
Keyboards если у них указанно в каком меню они должны отображаться.
Keyboards - имеет разные функции/стратегии для построения меню (кнопками/инлайном).4. /order_tele_bot/handlers.py
4.1 Класс Handler - Источник событий из паттерна Наблюдатель. В отличие от классического паттерна
подписка происходин не на любые изменения, а на конкретные события/тексты/комманды.
4.2 AbsCommand - абстрактный класс команды наблюдателя.
Имеет фабричный метод clone, но я пока ушел от его использования.
4.3 Классы StartCommand, ChooseGoods, InfoBot, SettingsBot, Caregory - конкретные наблюдатели-приспособленцы, содержат логику ответов.5. /order_tele_bot/metaclasses.py
5.1 Класс RegistryHolder - паттерн реестр6. /order_tele_bot/db/tables.py
6.1 Реализован паттерн Domain Model, нативными средствами встроенной в библиотеку sqlalchemy,
которые были реализованы в tables.7. /order_tele_bot/handlers.py
7.1 Избавился от магических цифр
7.2 Вижу признаки что этот файл превращается в Золотой молоток