First commit
This commit is contained in:
1
bot/templates/__init__.py
Normal file
1
bot/templates/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .message_callback import *
|
||||
88
bot/templates/message_callback.py
Normal file
88
bot/templates/message_callback.py
Normal file
@@ -0,0 +1,88 @@
|
||||
from typing import Union
|
||||
|
||||
from aiogram.types import (
|
||||
FSInputFile,
|
||||
CallbackQuery,
|
||||
Message,
|
||||
ReplyKeyboardMarkup,
|
||||
InlineKeyboardMarkup
|
||||
)
|
||||
from aiogram.utils.keyboard import ReplyKeyboardBuilder, InlineKeyboardBuilder
|
||||
|
||||
# Настройка экспорта в модули
|
||||
__all__ = ('msg', 'msg_photo', 'markups',)
|
||||
|
||||
|
||||
def markups(markup: Union[
|
||||
InlineKeyboardBuilder,
|
||||
ReplyKeyboardBuilder,
|
||||
InlineKeyboardMarkup,
|
||||
ReplyKeyboardMarkup,
|
||||
None] = None, ) -> None:
|
||||
"""Получение маркапа"""
|
||||
reply_markup: Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, None] = None
|
||||
|
||||
if markup:
|
||||
if isinstance(markup, InlineKeyboardBuilder):
|
||||
reply_markup = markup.as_markup()
|
||||
elif isinstance(markup, ReplyKeyboardBuilder):
|
||||
reply_markup = markup.as_markup(resize_keyboard=True)
|
||||
elif isinstance(markup, (InlineKeyboardMarkup, ReplyKeyboardMarkup)):
|
||||
reply_markup = markup
|
||||
return reply_markup
|
||||
|
||||
|
||||
async def msg(
|
||||
message: Message | CallbackQuery,
|
||||
text: str = "Сообщение отправлено!",
|
||||
markup: Union[
|
||||
InlineKeyboardBuilder,
|
||||
ReplyKeyboardBuilder,
|
||||
InlineKeyboardMarkup,
|
||||
ReplyKeyboardMarkup,
|
||||
None,
|
||||
] = None,
|
||||
) -> None:
|
||||
"""
|
||||
Шаблон для отправки текстового сообщения или ответа на callback-запрос.
|
||||
|
||||
Args:
|
||||
message (Message | CallbackQuery): Сообщение или callback-запрос.
|
||||
text (str): Текст сообщения.
|
||||
markup (Union[InlineKeyboardBuilder, ReplyKeyboardBuilder, InlineKeyboardMarkup, ReplyKeyboardMarkup, None]):
|
||||
Клавиатура для сообщения. Может быть билдера или готовый объект.
|
||||
"""
|
||||
|
||||
if isinstance(message, Message):
|
||||
await message.reply(text=text, reply_markup=markups(markup))
|
||||
else:
|
||||
await message.message.reply(text=text, reply_markup=markups(markup))
|
||||
|
||||
|
||||
async def msg_photo(
|
||||
message: Message | CallbackQuery,
|
||||
file: str = "assets/default.jpg",
|
||||
text: str = "Сообщение отправлено!",
|
||||
markup: Union[
|
||||
InlineKeyboardBuilder,
|
||||
ReplyKeyboardBuilder,
|
||||
InlineKeyboardMarkup,
|
||||
ReplyKeyboardMarkup,
|
||||
None,
|
||||
] = None,
|
||||
) -> None:
|
||||
"""
|
||||
Шаблон для отправки фотографии с подписью или ответа на callback-запрос.
|
||||
|
||||
Args:
|
||||
message (Message | CallbackQuery): Сообщение или callback-запрос.
|
||||
file (str): Путь к файлу фотографии.
|
||||
text (str): Подпись к фото.
|
||||
markup (Union[InlineKeyboardBuilder, ReplyKeyboardBuilder, InlineKeyboardMarkup, ReplyKeyboardMarkup, None]):
|
||||
Клавиатура для сообщения. Может быть билдера или готовый объект.
|
||||
"""
|
||||
|
||||
if isinstance(message, Message):
|
||||
await message.reply_photo(photo=FSInputFile(file), caption=text, reply_markup=markups(markup))
|
||||
else:
|
||||
await message.message.reply_photo(photo=FSInputFile(file), caption=text, reply_markup=markups(markup))
|
||||
Reference in New Issue
Block a user