1.5 Добавлена работа с инлайн модом на рекламу, удобно
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
from aiogram import Router
|
||||
from .routers import router as all_routers
|
||||
from .inline import router as inline_routers
|
||||
from .inline import *
|
||||
from .keyboards import *
|
||||
from .utils import *
|
||||
@@ -11,4 +12,7 @@ from .utils import *
|
||||
router = Router(name="main_router")
|
||||
|
||||
# Список подключаемых роутеров сверху-вниз
|
||||
router.include_routers(all_routers)
|
||||
router.include_routers(
|
||||
all_routers,
|
||||
inline_routers,
|
||||
)
|
||||
|
||||
@@ -1,4 +1,15 @@
|
||||
# BotCode/inline/__init__.py
|
||||
# Инициализация модуля inline, для создания inline-команд
|
||||
|
||||
# Экспортирование модулей во внешние слои проекта
|
||||
from aiogram import Router
|
||||
from .reklama import router as reklama_router
|
||||
|
||||
# Объявление главного роутера и настройка экспорта модулей
|
||||
__all__ = ("router",)
|
||||
router = Router(name="inline_routers")
|
||||
|
||||
|
||||
# Список подключаемых роутеров сверху-вниз
|
||||
router.include_routers(
|
||||
reklama_router,
|
||||
)
|
||||
43
BotCode/inline/reklama.py
Normal file
43
BotCode/inline/reklama.py
Normal file
@@ -0,0 +1,43 @@
|
||||
# BotCode/inline/reklama.py
|
||||
# Работа с инлайн запросами на рекламу
|
||||
|
||||
from aiogram import Router, types
|
||||
from aiogram.types import InlineQueryResultPhoto
|
||||
from BotLibrary import bot
|
||||
|
||||
# Настройка экспорта в модули
|
||||
router = Router(name="reklama_inline_router")
|
||||
image_url = "https://cdn.tripster.ru/photos/0bc3afa7-3847-4b47-aaf1-60202f48fb2a.jpg" # URL изображения
|
||||
|
||||
@router.callback_query(lambda c: c.data == 'button_1')
|
||||
async def process_callback_button(callback_query: types.CallbackQuery):
|
||||
await bot.answer_callback_query(callback_query.id, text="Вы нажали первую кнопку!")
|
||||
await bot.send_message(callback_query.from_user.id, "Ответ на вашу кнопку.")
|
||||
|
||||
@router.inline_query()
|
||||
async def inline_echo(inline_query: types.InlineQuery):
|
||||
# Содержимое запроса
|
||||
query = inline_query.query
|
||||
|
||||
# Подготавливаем результат для ответа
|
||||
if query:
|
||||
# Отправляем заготовленное сообщение с инлайн кнопками
|
||||
result_id = inline_query.id # уникальный ID для запроса
|
||||
|
||||
# Создаем инлайн результат с изображением
|
||||
items = [
|
||||
InlineQueryResultPhoto(
|
||||
id=result_id,
|
||||
photo_url=image_url, # URL изображения
|
||||
thumbnail_url=image_url, # Миниатюра изображения
|
||||
caption="Это сообщение с изображением и инлайн кнопками!", # Текст, который будет показываться под изображением
|
||||
reply_markup=types.InlineKeyboardMarkup(
|
||||
inline_keyboard=[
|
||||
[types.InlineKeyboardButton(text="Посмотреть инфо-канал", url="https://t.me/adeptusfiziks")],
|
||||
[types.InlineKeyboardButton(text="Вторая кнопка", callback_data="button_1")],
|
||||
]
|
||||
)
|
||||
)
|
||||
]
|
||||
# Отправляем результат в инлайн режиме
|
||||
await bot.answer_inline_query(inline_query.id, items)
|
||||
Reference in New Issue
Block a user