Similization
@Similization
В прострации

Дискорд бот падает с ошибкой, после того, как 15 минут непрерывно поиграл песни. Как исправить?

Ошибка выглядит так:
Ignoring exception in slash command 'yam-play':
Traceback (most recent call last):
  File "/Users/similization/Programming/python/discord_python_bot/lib/python3.10/site-packages/disnake/ext/commands/slash_core.py", line 730, in invoke
    await call_param_func(self.callback, inter, self.cog, **kwargs)
  File "/Users/similization/Programming/python/discord_python_bot/lib/python3.10/site-packages/disnake/ext/commands/params.py", line 1022, in call_param_func
    return await maybe_coroutine(safe_call, function, **kwargs)
  File "/Users/similization/Programming/python/discord_python_bot/lib/python3.10/site-packages/disnake/utils.py", line 596, in maybe_coroutine
    return await value
  File "/Users/similization/Programming/python/discord_python_bot/bot_example.py", line 265, in yam_play_command
  File "/Users/similization/Programming/python/discord_python_bot/bot_example.py", line 225, in play
  File "/Users/similization/Programming/python/discord_python_bot/bot_example.py", line 194, in play_track
    await inter.followup.send(f"now is playing song: {track.title}")
  File "/Users/similization/Programming/python/discord_python_bot/lib/python3.10/site-packages/disnake/webhook/async_.py", line 1664, in send
    data = await adapter.execute_webhook(
  File "/Users/similization/Programming/python/discord_python_bot/lib/python3.10/site-packages/disnake/webhook/async_.py", line 201, in request
    raise HTTPException(response, data)
disnake.errors.HTTPException: 401 Unauthorized (error code: 50027): Invalid Webhook Token

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/similization/Programming/python/discord_python_bot/lib/python3.10/site-packages/disnake/ext/commands/interaction_bot_base.py", line 1255, in process_application_commands
    await app_command.invoke(interaction)
  File "/Users/similization/Programming/python/discord_python_bot/lib/python3.10/site-packages/disnake/ext/commands/slash_core.py", line 739, in invoke
    raise CommandInvokeError(exc) from exc
disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: HTTPException: 401 Unauthorized (error code: 50027): Invalid Webhook Token

Я нашел решение для discord.py, однако я пользуюсь disnake и не совсем понимаю, что нужно делать.
Есть функция defer, которая говорит о том, что сообщение придет позже, чем через 3 секунды, но в данном случае она совершенно не подходит
В данный момент я вывожу сообщение о том, что бот подключился/добавил пенсю в очередь и вывожу название песни через:
await inter.followup.send(f"now is playing song: {track.title}")

честно говоря мне совершенно не нравится идея того, что приходится использовать followup, потому что он может быть вызван только после предварительного вызова response
То есть последовательность примерно такая:
await inter.response.send_message(f"bot connected to the channel")
*** code ***
await inter.followup.send(f"now is playing song: {track.title}")
# и так для каждого трека
*** code ***
await inter.followup.send(f"now is playing song: {track.title}")

После 15 минут падает с ошибкой
Вариант получения нового токен кажется мне не самой хорошей идеей
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Потому что тебе дается 15 минут чтобы отвечать на взаимодействие.
Если посмотреть на других музыкальных ботов, они как правило их вообще не используют, просто отправляют обычные сообщения в заданный канал.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы