aiogram | inline режим

хромиус)

спокойно, это всего лишь слива
Автор темы
Друг
4,960
3,231
всем ку.пытаюсь сделать бота для тг,но в инлайн режиме при упоминании бота происходит бесконечная загрузка его ответа.с чем это может быть связано? в лс если его упомянуть он все нормально скажет(не инлайн режим имею ввиду) (на говнокод не обращайте внимание это нормально)
1689367403902.png

1689367417777.png


Python:
import asyncio
from aiogram import Bot, Dispatcher, types, executor
import vk_api

telegram_token = 'YOUR_TELEGRAM_BOT_TOKEN'

vk_token = 'YOUR_VK_API_TOKEN'
user_id = 'YOUR_VK_USER_ID'

bot = Bot(token=telegram_token)
dp = Dispatcher(bot)

vk_session = vk_api.VkApi(token=vk_token)
vk = vk_session.get_api()

@dp.message_handler()
async def handle_message(message: types.Message):
    if '@nowplayvk_bot' in message.text:
        response = vk.status.get(user_id=user_id)
        status = response['text']

        if 'audio' in response:
            audio = response['audio']
            artist = audio['artist']
            title = audio['title']
            duration = audio['duration']

            minutes = duration // 60
            seconds = duration % 60
            duration_formatted = f"{minutes}:{seconds:02}"

            response_message = f"Ты слушаешь сейчас: {artist} - {title} ({duration_formatted})"
        else:
            response_message = "Сейчас ты не слушаешь музыку в VK."

        await message.reply(response_message)

@dp.inline_handler()
async def handle_inline_query(inline_query: types.InlineQuery):
    if '@nowplayvk_bot' in inline_query.query:
        response = vk.status.get(user_id=user_id)
        status = response['text']

        if 'audio' in response:
            audio = response['audio']
            artist = audio['artist']
            title = audio['title']
            duration = audio['duration']

            minutes = duration // 60
            seconds = duration % 60
            duration_formatted = f"{minutes}:{seconds:02}"

            response_message = f"Ты слушаешь сейчас: {artist} - {title} ({duration_formatted})"

            result_id = '1'
            title = f"Текущий трек: {artist} - {title}"
            input_message_content = types.InputTextMessageContent(response_message)
            result = types.InlineQueryResultArticle(
                id=result_id,
                title=title,
                input_message_content=input_message_content
            )

            await bot.answer_inline_query(inline_query.id, results=[result])

async def on_startup(dp):
    await bot.send_message(chat_id='YOUR_CHAT_ID', text='Бот запущен')

if __name__ == '__main__':
    dp.register_inline_handler(handle_inline_query)
    executor.start_polling(dp, on_startup=on_startup)
 
Последнее редактирование:

oliburn

Известный
311
111
всем ку.пытаюсь сделать бота для тг,но в инлайн режиме при упоминании бота происходит бесконечная загрузка его ответа.с чем это может быть связано? в лс если его упомянуть он все нормально скажет(не инлайн режим имею ввиду) (на говнокод не обращайте внимание это нормально)
Посмотреть вложение 207968
Посмотреть вложение 207969

Python:
import asyncio
from aiogram import Bot, Dispatcher, types, executor
import vk_api

telegram_token = 'YOUR_TELEGRAM_BOT_TOKEN'

vk_token = 'YOUR_VK_API_TOKEN'
user_id = 'YOUR_VK_USER_ID'

bot = Bot(token=telegram_token)
dp = Dispatcher(bot)

vk_session = vk_api.VkApi(token=vk_token)
vk = vk_session.get_api()

@dp.message_handler()
async def handle_message(message: types.Message):
    if '@nowplayvk_bot' in message.text:
        response = vk.status.get(user_id=user_id)
        status = response['text']

        if 'audio' in response:
            audio = response['audio']
            artist = audio['artist']
            title = audio['title']
            duration = audio['duration']

            minutes = duration // 60
            seconds = duration % 60
            duration_formatted = f"{minutes}:{seconds:02}"

            response_message = f"Ты слушаешь сейчас: {artist} - {title} ({duration_formatted})"
        else:
            response_message = "Сейчас ты не слушаешь музыку в VK."

        await message.reply(response_message)

@dp.inline_handler()
async def handle_inline_query(inline_query: types.InlineQuery):
    if '@nowplayvk_bot' in inline_query.query:
        response = vk.status.get(user_id=user_id)
        status = response['text']

        if 'audio' in response:
            audio = response['audio']
            artist = audio['artist']
            title = audio['title']
            duration = audio['duration']

            minutes = duration // 60
            seconds = duration % 60
            duration_formatted = f"{minutes}:{seconds:02}"

            response_message = f"Ты слушаешь сейчас: {artist} - {title} ({duration_formatted})"

            result_id = '1'
            title = f"Текущий трек: {artist} - {title}"
            input_message_content = types.InputTextMessageContent(response_message)
            result = types.InlineQueryResultArticle(
                id=result_id,
                title=title,
                input_message_content=input_message_content
            )

            await bot.answer_inline_query(inline_query.id, results=[result])

async def on_startup(dp):
    await bot.send_message(chat_id='YOUR_CHAT_ID', text='Бот запущен')

if __name__ == '__main__':
    dp.register_inline_handler(handle_inline_query)
    executor.start_polling(dp, on_startup=on_startup)
Есть же офф. чат в тг aiogram, напиши туда