Задать вопрос
@Fre4ka

Не отображаются результаты в Inline режиме?

Я хотел отобразить все доступные песни в инлайн режиме (если что использую библиотеку yandex_music), но почему то они не отображаются, там вообще ниче не нет.
Через бот фазе я включал инлайн режим, ошибок в терминале нет

Код
@dp.inline_handler()
async def search_inline(query: types.InlineQuery):
    try:
        song_name = query.query or 'Трек'
        
        # Поиск песни
        search_result = ymusic.search(song_name)
        tracks = search_result.tracks.results
​
        if tracks:
​
            # Создаем список для результатов
            results_list = []
​
            for i, track in enumerate(tracks):
                artist = track.artists[0].name
                title = track.title
                preview_url = track.get_download_info(get_direct_links=True)[0]['direct_link']
                
                # Отправляем пользователю информацию о каждой найденной песне
                response =  f"\n Исполнитель: *{artist}*" \
                    f"\n Название песни: [{title}](https://music.yandex.ru/track/{track.id})" \
                    f"\n\n Бот для поиска музыки\n@username"
​
                # Создаем объект InlineQueryResultAudio для каждой песни
                audio = types.InlineQueryResultAudio(
                    id=str(i),
                    title=title,
                    audio_url=preview_url,
                    performer=artist,
                    caption=response,
                    reply_markup=keyboards(),
                    parse_mode='Markdown',
                )
​
                # Добавляем объект audio в список результатов
                results_list.append(audio)
​
            # Отправляем ответ с результатами
            await bot.answer_inline_query(query.id, results=results_list)
​
        else:
            markup = types.InlineKeyboardMarkup()
            markup.add(types.InlineKeyboardButton("", switch_inline_query_current_chat=""))
            error = [
                types.InlineQueryResultArticle(
                    id='404',
                    title='Не удалось найти эту песню :(',
                    input_message_content=types.InputTextMessageContent(message_text='_Не удалось найти эту песню :(_', parse_mode='Markdown'),
                    reply_markup=markup
                )
            ]
            await bot.answer_inline_query(query.id, error)
​
    except Exception as e:
        print(f"Произошла ошибка при поиске песни: {e}")
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
febday
@febday
Если бот не выдаёт вообще никакой результат, даже в случае с отсутствием песен, то попробуйте обновить токен через @BotFather
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы