Крч сразу - п****ж по поводу того что "кто делает на телеботе" и говнокод - пих*й.
Реализация через sqlite. Все меню и кнопки хранятся там. Есть простая гуйка для тех кто не знает SQL - автоматит этот процесс.
Типы кнопок : все что есть в телеге
Текст - можно оформить в markdown( честно недотестил . Если не будет работать пишите переделаю)
Под каждое меню создается своя табличка где описаны кнопки.
Динамическая папка modle - подкидываете код, указываете название скрипта который должен юзатся.
Два типа меню - инлайн и реплай. Пока в двух таблицах, если надо будет соберу в одну и сделаю подключение к постгре.
Для чего можно юзнуть - простые диалоговые с небольшой интеграцией к чему либо.
Настроек меню\кнопок пока не хватает. Если БУДЕТ АКТУАЛЬНО - ПЕРЕДЕЛАЮ ПОД AIOGRAM.
Теперь к скринам и пояснениям:
1. FILL_DB_GUI - файл редактирования кнопок и меню. Команды - опись то что выводит, какое меню, выводимый текст, ссылка на пикчу, в связанном меню указываем нужное.
+редактирование уже созданной команды
(Честно - с 99% работает только редактирование, но не добавление. Будет спрос запилю еще и динамические команды)
Меню создание и редактирование :
В коде пишите название БД. Тип меню трогать можно, но не желательно - тк при выборе определенного типа работает нужный обрабочик(модуль).
Создание\редактирование кнопок:
Кнопки в меню:
Положение, управление кол-во кнопок в меню и строк работает. Удаление\добавление и пр.
Визуализация - не рабочая(надо будет если допилю)
Теперь код:
TelegramBotProject/
├── bot.py
├── config.ini
├── create_db.py
├── inline_buttons.py
├── reply_buttons.py
├── menus/
│ ├── __init__.py
│ ├── inline_menu.py
│ └── reply_menu.py
└── modules/
└── (модули для обработки кода кнопок)
По config.ini - туда вписать либо reply либо inline.
Теперь по БД как настраивать и прочее:
1. Идшник кнопки
2.Имя для обращения
3. То что написано в кнопке
4. Прямой линк на картинку
5. Тип - не трогать.
6. Положение строк кнопок в строке и кол-во строк.
Кнопки:
Аналогично по образу и подобию.
С меню все тоже очень просто:
menu_buttons_{название меню\таблицы}
Что содержится в табличке : айдишнички естессна.
По заполнению:
Заполнил рандомом что бы было понятно тем кто ниче не понимает(нулёвки) и было что менять.
PS. - можно сделать через фулл абстракцию или серриализаторы, примострячив вместо ткинтера django или что то в этом роде.
Делаю и разрабатываю для себя ибо норм проектов которые нужны мне - нет. А клепать их руками затрахался... Много заказывают однотипов и тд.
Что доработать и доделать - велком. Пишите. Хорошие рекомендации по улучшению реализации с радостью выслушаю.
Кодишь лучше?)- обьясни.
ССЫЛКА ПЕРЕЗАЛИТА. ТЕПЕРЬ НА ЕНДВЕЙ
Реализация через sqlite. Все меню и кнопки хранятся там. Есть простая гуйка для тех кто не знает SQL - автоматит этот процесс.
Типы кнопок : все что есть в телеге
Текст - можно оформить в markdown( честно недотестил . Если не будет работать пишите переделаю)
Под каждое меню создается своя табличка где описаны кнопки.
Динамическая папка modle - подкидываете код, указываете название скрипта который должен юзатся.
Два типа меню - инлайн и реплай. Пока в двух таблицах, если надо будет соберу в одну и сделаю подключение к постгре.
Для чего можно юзнуть - простые диалоговые с небольшой интеграцией к чему либо.
Настроек меню\кнопок пока не хватает. Если БУДЕТ АКТУАЛЬНО - ПЕРЕДЕЛАЮ ПОД AIOGRAM.
Теперь к скринам и пояснениям:
1. FILL_DB_GUI - файл редактирования кнопок и меню. Команды - опись то что выводит, какое меню, выводимый текст, ссылка на пикчу, в связанном меню указываем нужное.
+редактирование уже созданной команды
(Честно - с 99% работает только редактирование, но не добавление. Будет спрос запилю еще и динамические команды)
Меню создание и редактирование :
В коде пишите название БД. Тип меню трогать можно, но не желательно - тк при выборе определенного типа работает нужный обрабочик(модуль).
Создание\редактирование кнопок:
Кнопки в меню:
Положение, управление кол-во кнопок в меню и строк работает. Удаление\добавление и пр.
Визуализация - не рабочая(надо будет если допилю)
Теперь код:
- bot.py
- Описание: Основной файл бота, который запускает бота и обрабатывает команды и кнопки.
- Функции:
- Настройка логирования.
- Чтение конфигурационного файла config.ini.
- Обработка команды /start.
- Обработка нажатий на инлайн-кнопки и обычные кнопки.
- Вывод меню с учетом количества строк и кнопок в строке.
- config.ini
- Описание: Конфигурационный файл, который определяет тип клавиатуры (инлайн или обычная).
- Содержимое:
- Параметр keyboard_type, который может быть inline или reply.
- create_db.py
- Описание: Скрипт для создания баз данных inline_menu.db и reply_menu.db.
- Функции:
- Создание таблиц для команд, кнопок и меню.
- Добавление столбцов для количества строк и кнопок в строке в таблицу menus.
- populate_inline_db.py
- Описание: Скрипт для заполнения базы данных inline_menu.db данными для инлайн-меню.
- Функции:
- Добавление команд, кнопок и меню в базу данных.
- Указание количества строк и кнопок в строке для каждого меню.
- populate_reply_db.py
- Описание: Скрипт для заполнения базы данных reply_menu.db данными для обычных меню.
- Функции:
- Добавление команд, кнопок и меню в базу данных.
- Указание количества строк и кнопок в строке для каждого меню.
- inline_buttons.py
- Описание: Модуль для работы с инлайн-кнопками.
- Функции:
- Получение структуры меню из базы данных.
- Формирование инлайн-клавиатуры.
- Обработка нажатий на инлайн-кнопки.
- reply_buttons.py
- Описание: Модуль для работы с обычными кнопками.
- Функции:
- Получение структуры меню из базы данных.
- Формирование обычной клавиатуры.
- Обработка нажатий на обычные кнопки.
- inline_menu.py
- Описание: Класс для представления инлайн-меню.
- Функции:
- Хранение текста, URL изображения, кнопок, количества строк и кнопок в строке.
- Получение текста, URL изображения, кнопок и типа меню.
- reply_menu.py
- Описание: Класс для представления обычных меню.
- Функции:
- Хранение текста, URL изображения, кнопок, количества строк и кнопок в строке.
- Получение текста, URL изображения, кнопок и типа меню.
- __init__.py
- Описание: Инициализационный файл для пакета menus.
- Функции:
- Определение абстрактного базового класса Menu.
- Импорт классов InlineMenu и ReplyMenu.
TelegramBotProject/
├── bot.py
├── config.ini
├── create_db.py
├── inline_buttons.py
├── reply_buttons.py
├── menus/
│ ├── __init__.py
│ ├── inline_menu.py
│ └── reply_menu.py
└── modules/
└── (модули для обработки кода кнопок)
По config.ini - туда вписать либо reply либо inline.
Теперь по БД как настраивать и прочее:
1. Идшник кнопки
2.Имя для обращения
3. То что написано в кнопке
4. Прямой линк на картинку
5. Тип - не трогать.
6. Положение строк кнопок в строке и кол-во строк.
Кнопки:
Аналогично по образу и подобию.
С меню все тоже очень просто:
menu_buttons_{название меню\таблицы}
Что содержится в табличке : айдишнички естессна.
По заполнению:
'engines': {
'text': '*Двигатели*',
'image_url': 'https://example.com/engines_image.png',
'type': 'inline',
'buttons': [10, 11, 12],
'rows': 1,
'buttons_per_row': 3
Заполнил рандомом что бы было понятно тем кто ниче не понимает(нулёвки) и было что менять.
PS. - можно сделать через фулл абстракцию или серриализаторы, примострячив вместо ткинтера django или что то в этом роде.
Делаю и разрабатываю для себя ибо норм проектов которые нужны мне - нет. А клепать их руками затрахался... Много заказывают однотипов и тд.
Что доработать и доделать - велком. Пишите. Хорошие рекомендации по улучшению реализации с радостью выслушаю.
Кодишь лучше?)- обьясни.
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
ССЫЛКА ПЕРЕЗАЛИТА. ТЕПЕРЬ НА ЕНДВЕЙ
Последнее редактирование: