Исходники - Бот - Конструктор telegram ботов v0.1(Реализация под sqlite с динамикой) | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой уникальный скрипт?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Исходники Бот Конструктор telegram ботов v0.1(Реализация под sqlite с динамикой)

Freazzzing

Сеньор
Автор темы
22 Окт 2024
70
90
18
Крч сразу - п****ж по поводу того что "кто делает на телеботе" и говнокод - пих*й.
Реализация через sqlite. Все меню и кнопки хранятся там. Есть простая гуйка для тех кто не знает SQL - автоматит этот процесс.
Типы кнопок : все что есть в телеге
Текст - можно оформить в markdown( честно недотестил . Если не будет работать пишите переделаю)
Под каждое меню создается своя табличка где описаны кнопки.
Динамическая папка modle - подкидываете код, указываете название скрипта который должен юзатся.
Два типа меню - инлайн и реплай. Пока в двух таблицах, если надо будет соберу в одну и сделаю подключение к постгре.

Для чего можно юзнуть - простые диалоговые с небольшой интеграцией к чему либо.
Настроек меню\кнопок пока не хватает. Если БУДЕТ АКТУАЛЬНО - ПЕРЕДЕЛАЮ ПОД AIOGRAM.

Теперь к скринам и пояснениям:
1. FILL_DB_GUI - файл редактирования кнопок и меню. Команды - опись то что выводит, какое меню, выводимый текст, ссылка на пикчу, в связанном меню указываем нужное.
+редактирование уже созданной команды
(Честно - с 99% работает только редактирование, но не добавление. Будет спрос запилю еще и динамические команды)
1731343909990
Меню создание и редактирование :
1731344015797
В коде пишите название БД. Тип меню трогать можно, но не желательно - тк при выборе определенного типа работает нужный обрабочик(модуль).
Создание\редактирование кнопок:
1731344083634
Кнопки в меню:
1731344111334
Положение, управление кол-во кнопок в меню и строк работает. Удаление\добавление и пр.
Визуализация - не рабочая(надо будет если допилю)
Теперь код:
  1. bot.py
    • Описание: Основной файл бота, который запускает бота и обрабатывает команды и кнопки.​
    • Функции:​
      • Настройка логирования.​
      • Чтение конфигурационного файла config.ini.​
      • Обработка команды /start.​
      • Обработка нажатий на инлайн-кнопки и обычные кнопки.​
      • Вывод меню с учетом количества строк и кнопок в строке.​
  2. config.ini
    • Описание: Конфигурационный файл, который определяет тип клавиатуры (инлайн или обычная).​
    • Содержимое:​
      • Параметр keyboard_type, который может быть inline или reply.​
  3. create_db.py
    • Описание: Скрипт для создания баз данных inline_menu.db и reply_menu.db.​
    • Функции:​
      • Создание таблиц для команд, кнопок и меню.​
      • Добавление столбцов для количества строк и кнопок в строке в таблицу menus.​
  4. populate_inline_db.py
    • Описание: Скрипт для заполнения базы данных inline_menu.db данными для инлайн-меню.​
    • Функции:​
      • Добавление команд, кнопок и меню в базу данных.​
      • Указание количества строк и кнопок в строке для каждого меню.​
  5. populate_reply_db.py
    • Описание: Скрипт для заполнения базы данных reply_menu.db данными для обычных меню.​
    • Функции:​
      • Добавление команд, кнопок и меню в базу данных.​
      • Указание количества строк и кнопок в строке для каждого меню.​
  6. inline_buttons.py
    • Описание: Модуль для работы с инлайн-кнопками.​
    • Функции:​
      • Получение структуры меню из базы данных.​
      • Формирование инлайн-клавиатуры.​
      • Обработка нажатий на инлайн-кнопки.​
  7. reply_buttons.py
    • Описание: Модуль для работы с обычными кнопками.​
    • Функции:​
      • Получение структуры меню из базы данных.​
      • Формирование обычной клавиатуры.​
      • Обработка нажатий на обычные кнопки.​
  8. inline_menu.py
    • Описание: Класс для представления инлайн-меню.​
    • Функции:​
      • Хранение текста, URL изображения, кнопок, количества строк и кнопок в строке.​
      • Получение текста, URL изображения, кнопок и типа меню.​
  9. reply_menu.py
    • Описание: Класс для представления обычных меню.​
    • Функции:​
      • Хранение текста, URL изображения, кнопок, количества строк и кнопок в строке.​
      • Получение текста, URL изображения, кнопок и типа меню.​
  10. __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.

Теперь по БД как настраивать и прочее:
1731344538186
1. Идшник кнопки
2.Имя для обращения
3. То что написано в кнопке
4. Прямой линк на картинку
5. Тип - не трогать.
6. Положение строк кнопок в строке и кол-во строк.

Кнопки:
1731344627437
Аналогично по образу и подобию.

С меню все тоже очень просто:
1731344670393
menu_buttons_{название меню\таблицы}

Что содержится в табличке : айдишнички естессна.
1731344728848
По заполнению:
'engines': { 'text': '*Двигатели*', 'image_url': 'https://example.com/engines_image.png', 'type': 'inline', 'buttons': [10, 11, 12], 'rows': 1, 'buttons_per_row': 3

Заполнил рандомом что бы было понятно тем кто ниче не понимает(нулёвки) и было что менять.

PS. - можно сделать через фулл абстракцию или серриализаторы, примострячив вместо ткинтера django или что то в этом роде.
Делаю и разрабатываю для себя ибо норм проектов которые нужны мне - нет. А клепать их руками затрахался... Много заказывают однотипов и тд.
Что доработать и доделать - велком. Пишите. Хорошие рекомендации по улучшению реализации с радостью выслушаю.
Кодишь лучше?)- обьясни.


ССЫЛКА ПЕРЕЗАЛИТА. ТЕПЕРЬ НА ЕНДВЕЙ
 
Последнее редактирование:
Like
  • 20
Реакции: 19 users

k1mber69

Джун
2 Окт 2024
33
2
8
Freazzzing, хорош, на самом деле идейка интересная довольно, можешь улучшить и сделать красивое гуи в ехе, после сделать из этого проект и продавать по ключам
 

Freazzzing

Сеньор
Автор темы
22 Окт 2024
70
90
18
k1mber69, Да поделку перепилил на постгре, делаю апи полноценное, функции к кнопкам вызов текста+меню. Вызов модулей тож пофиксил.
Но вот крч трабл в абстракции, не понимаю как лучше сделать списки. Допустим 128 городов, у каждого города от 2 до 10 районов.
Сейчас на каждый случай надо пилить свою таблицу, делать связь и кнопки прописывать... Неудобно.
Думаю как это все на серриализаторах сделать и перепилить структурник.
+ сервисные кнопки надо пилить.
гуи посредственное, но на django запилить допустим не проблема, сделать веб морду и базовую защиту.
А вот с админкой БОТОВ уже интереснее. Сейчас у меня инфра на бакете
 
Like
  • 1
Реакции: 1 user
Активность:
Пока что здесь никого нет