Проблема с функцией для ответов Юзербота при сообщении более чем в 3000 символов
У меня есть функция для универсального ответа, но я не знаю откуда брать query
.
При написании и использовании команд я получаю только message
.
В этой функции не работает ответ, когда символов в сообщении больше 3000:
from pyrogram.types import InlineQueryResultArticle, InputTextMessageContent
from pyrogram import Client, enums, filters, idle
from pyrogram.types import InlineKeyboardButton, Message, CallbackQuery
from pyroboard import InlineKeyboard
parts_dict = {}
ub = Client() # Юзербот
app = Client() # Инлайн бот
async def answer(message: Message, text: str):
# универсальная функция для ответа юзербота при привышении количества символов
keyboard = InlineKeyboard()
count = len(text)
if count <= 3000:
try:
await ub.edit_message_text(message.chat.id, message.id, text)
except:
await ub.send_message(message.chat.id, text)
else: ## не работает код ниже ##
parts = [text[i:i+3000] for i in range(0, len(text), 3000)]
keyboard.paginate(len(parts), 1, 'parts#{number}')
query = None
results = [
InlineQueryResultArticle(
title=f"parts",
input_message_content=InputTextMessageContent(part),
reply_markup=keyboard
)
for i, part in enumerate(parts)
]
await app.answer_inline_query(query.id, results)
result = await ub.get_inline_bot_results("@DF_Userbot", query="parts")
await ub.send_inline_bot_result(message.chat.id, result.query_id, result.results[0].id)
# Store the parts in a dictionary for later use
global parts_dict
parts_dict = {f"part#{i}": part for i, part in enumerate(parts)}