Обновление 4.2

This commit is contained in:
sergey
2025-02-08 19:12:38 +07:00
parent 6e2e7bdc0f
commit ef6906b240
39 changed files with 730 additions and 553 deletions

View File

@@ -2,7 +2,6 @@
# Инициализация пакета keyboards, для работы с клавиатурами
from aiogram import Router
from .inline_kb import router as inline_kb_router
from .reply_kb import router as reply_kb_router
from .inline_kb import *
from .reply_kb import *
@@ -13,7 +12,4 @@ router = Router(name="kb_router")
# Список подключаемых роутеров сверху-вниз
router.include_routers(
inline_kb_router,
reply_kb_router,
)
router.include_routers(reply_kb_router)

View File

@@ -1,10 +1,8 @@
# BotCode/keyboards/inline_kb/__init__.py
# Инициализация пакета inline_keyboards, для работы с инлайн клавиатурами
from aiogram import Router
from .actor_kb import *
from .randnum_kb import *
# Объявление роутера и настройка экспорта модулей
__all__ = ("router", "actor_kb", "ButtonInl")
router = Router(name="inline_kb_router")
__all__ = ("randnum_kb", "actor_kb")

View File

@@ -1,14 +1,11 @@
# BotCode/keyboards/inline_kb/actor_kb.py
# Создания инлайн-клавиатуры на команду: /actor
from aiogram import Router
from aiogram.types import InlineKeyboardMarkup
from aiogram.utils.keyboard import InlineKeyboardBuilder
from BotLibrary import ikb
# Создание роутера и настройка экспорта
__all__ = ("router", "get_actor_kb", "kb_text", "ButtonInl",)
kb_text = "ActorKb"
router = Router(name="actor_kb_router")
__all__ = ("get_actor_kb", "ButtonInl")
# Класс с параметрами кнопок
@@ -35,20 +32,14 @@ class ButtonInl:
# Функция создания клавиатуры на команду: /actor
def get_actor_kb() -> InlineKeyboardMarkup:
# Создаем билдер клавиатуры
builder = InlineKeyboardBuilder()
# Добавляем кнопки, группируя их по строкам
builder.button(text=ButtonInl.tg_chn, url=ButtonInl.tg_chn_url)
builder.button(text=ButtonInl.tg_chat, url=ButtonInl.tg_chat_url)
builder.button(text=ButtonInl.web_text, url=ButtonInl.web_url)
builder.button(text=ButtonInl.random_site, callback_data=ButtonInl.random_site_cbd)
builder.button(text=ButtonInl.random_num_dice, callback_data=ButtonInl.random_num_dice_cbd)
builder.button(text=ButtonInl.random_num_modal, callback_data=ButtonInl.random_num_modal_cdb)
builder.adjust(2, 1)
return builder.as_markup()
ikb.button(text=ButtonInl.tg_chn, url=ButtonInl.tg_chn_url)
ikb.button(text=ButtonInl.tg_chat, url=ButtonInl.tg_chat_url)
ikb.button(text=ButtonInl.web_text, url=ButtonInl.web_url)
ikb.button(text=ButtonInl.random_site, callback_data=ButtonInl.random_site_cbd)
ikb.button(text=ButtonInl.random_num_dice, callback_data=ButtonInl.random_num_dice_cbd)
ikb.button(text=ButtonInl.random_num_modal, callback_data=ButtonInl.random_num_modal_cdb)
ikb.adjust(2, 1)
return ikb.as_markup()

View File

@@ -1,27 +1,21 @@
# BotCode/keyboards/inline_kb/randnum_kb.py
# Создания инлайн-клавиатуры на команду: /randnum
from aiogram import Router
from aiogram.types import InlineKeyboardMarkup
from aiogram.utils.keyboard import InlineKeyboardBuilder
from BotLibrary import ikb
# Создание роутера и настройка экспорта
__all__ = ("router", "get_randnum_kb", "kb_text", "ButtonInl",)
kb_text = "RandNumKb"
router = Router(name="actor_kb_router")
__all__ = ("get_randnum_kb", "ButtonInl")
# Класс с параметрами кнопок
class ButtonInl:
text = "Получить ответ"
mark_cbd = "mark_cbd"
# Функция создания клавиатуры на команду: /actor
def get_randnum_kb(text_msg="Получить ответ") -> InlineKeyboardMarkup:
# Создаем билдер клавиатуры
builder = InlineKeyboardBuilder()
# Добавляем кнопки, группируя их по строкам
builder.button(text=text_msg, callback_data=ButtonInl.mark_cbd)
return builder.as_markup()
def get_randnum_kb() -> InlineKeyboardMarkup:
ikb.button(text=ButtonInl.text, callback_data=ButtonInl.mark_cbd)
ikb.add_row(1)
return ikb.as_markup()

View File

@@ -2,19 +2,13 @@
# Инициализация пакета reply_kb, для работы с клавиатурами
from aiogram import Router
from .start_kb import router as start_kb_router
from .help_kb import router as help_kb_router
from .more_kb import router as more_kb_router
# Объявление роутера и настройка экспорта модулей
__all__ = ("router",)
router = Router(name="reply_kb_router")
router = Router(name=__name__)
# Список подключаемых роутеров сверху-вниз
router.include_routers(
start_kb_router,
help_kb_router,
more_kb_router,
)
router.include_routers(help_kb_router)

View File

@@ -1,13 +1,13 @@
# BotCode/keyboards/reply_kb/help_kb.py
# Создание клавиатуры для сообщения: "Помогите!"
# Создает небольшую числовую клавиатуру для тестов
from aiogram import Router, F
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from aiogram.utils.keyboard import ReplyKeyboardBuilder
from BotLibrary import rkb
# Создание роутера и настройка экспорта модулей
__all__ = ("router", "get_help_kb", "kb_text",)
kb_text = "HelpKb"
__all__ = ("router", "get_help_kb")
router = Router(name="help_kb_router")
@@ -18,15 +18,13 @@ def get_help_kb() -> ReplyKeyboardMarkup:
"1", "2", "3",
"4", "5", "6",
"7", "8", "9",
"0",
"0",
]
# Создание кнопки каждого числа по отдельности
buttons_row = [KeyboardButton(text=num) for num in numbers]
builder = ReplyKeyboardBuilder()
for num in numbers:
builder.button(text=num)
builder.adjust(3)
builder.row(buttons_row[3], buttons_row[9])
builder.add(buttons_row[-1])
rkb.button(text=num)
return builder.as_markup(resize_keyboard=True)
rkb.adjust(3)
return rkb.as_markup(resize_keyboard=True)

View File

@@ -1,39 +1,25 @@
# BotCode/keyboards/reply_kb/more_kb.py
# Создания клавиатуры на команду: /more
# Для проверки отправки информации о пользователе
from aiogram import Router
from aiogram.types import KeyboardButtonPollType
from aiogram.utils.keyboard import ReplyKeyboardBuilder
from aiogram.types import KeyboardButtonPollType, ReplyKeyboardMarkup
from BotLibrary import rkb
# Создание роутера и настройка экспорта модулей
__all__ = ("router", "get_more_kb", "kb_text",)
kb_text = "HelpKb"
router = Router(name="more_kb_router")
# Настройка экспорта из этого модуля
__all__ = ("get_more_kb", "ButtonText")
# Класс с названиями кнопок
# Создание класса со значениями кнопок
class ButtonText:
More = "More"
Location = "Отправить локацию"
Contact = "Отправить контакт"
Chat = "Отправить чат???"
Poll = "Отправить опрос"
Users = "Что то с common"
# Функция создания клавиатуры на команду: /more
def get_more_kb() -> ReplyKeyboardBuilder:
builder = ReplyKeyboardBuilder()
# builder.add(KeyboardButton(text=ButtonText.Location, request_location=True))
builder.button(text=ButtonText.Location, request_location=True)
builder.button(text=ButtonText.Contact, request_contact=True)
builder.button(text=ButtonText.Poll, request_poll=KeyboardButtonPollType())
builder.adjust(1)
return builder.as_markup(resize_keyboard=True)
# Один из вариантов создание клавиатуры
# markup = ReplyKeyboardMarkup(
# keyboard=[]
# )
# return markup
def get_more_kb() -> ReplyKeyboardMarkup:
rkb.button(text=ButtonText.Location, request_location=True)
rkb.button(text=ButtonText.Contact, request_contact=True)
rkb.button(text=ButtonText.Poll, request_poll=KeyboardButtonPollType())
rkb.adjust(1)
return rkb.as_markup(resize_keyboard=True, one_time_keyboard=True)

View File

@@ -1,17 +1,15 @@
# BotCode/keyboards/reply_kb/start_kb.py
# Создания клавиатуры на команду: /start
# Для создания базовой клавиатуры с некими элементами
from aiogram import Router
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from aiogram.utils.keyboard import ReplyKeyboardBuilder
from aiogram.types import ReplyKeyboardMarkup
from BotLibrary import rkb
# Создание роутера и настройка экспорта
__all__ = ("router", "get_start_kb", "kb_text", "ButtonText",)
kb_text = "StartKb"
router = Router(name="start_kb_router")
# Настройка экспорта из этого модуля
__all__ = ("get_start_kb", "ButtonText")
# Класс с названиями кнопок
# Создание класса со значениями кнопок
class ButtonText:
Hello = "Привет!"
Help = "Помогите!"
@@ -19,16 +17,9 @@ class ButtonText:
# Функция создания клавиатуры на команду: /start
def get_start_kb() -> ReplyKeyboardBuilder:
button_hello = KeyboardButton(text=ButtonText.Hello)
button_help = KeyboardButton(text=ButtonText.Help)
button_bye = KeyboardButton(text=ButtonText.Bye)
buttons_first_row = [button_hello, button_help]
buttons_second_row = [button_bye]
markup = ReplyKeyboardMarkup(
keyboard=[buttons_first_row, buttons_second_row],
resize_keyboard=True,
one_time_keyboard=True,
)
return markup
def get_start_kb() -> ReplyKeyboardMarkup:
rkb.button(text=ButtonText.Hello)
rkb.button(text=ButtonText.Help)
rkb.button(text=ButtonText.Bye)
rkb.adjust(2)
return rkb.as_markup(resize_keyboard=True, one_time_keyboard=True)

View File

@@ -0,0 +1,23 @@
# BotCode/keyboards/reply_kb/survey_yesno_kb.py
# Создания клавиатуры на команду: /survey
# Для того, чтобы определить отправлять ли сообщения в будущем
from aiogram.types import ReplyKeyboardMarkup
from BotLibrary import rkb
# Настройка экспорта из этого модуля
__all__ = ("get_survey_email_kb", "ButtonText")
# Создание класса со значениями кнопок
class ButtonText:
Yes = "Да"
No = "Нет"
# Функция создания клавиатуры на команду: /survey
def get_survey_email_kb() -> ReplyKeyboardMarkup:
rkb.button(text=ButtonText.Yes)
rkb.button(text=ButtonText.No)
rkb.adjust(1)
return rkb.as_markup(resize_keyboard=True, one_time_keyboard=True)