Python Discord - Тайм-аут на голосовое соединение - PullRequest
0 голосов
/ 18 октября 2019

Для довольно простого диссонансного бота я написал. Самая неприятная часть этого кода в том, что он работал неделями, но теперь выдает следующие ошибки. Когда он достигает линии (voice = await client.join_voice_channel (channel)), программа выдает перечисленные ошибки. Бот подключается к моему голосовому каналу. Не воспроизводит запрошенный файл. А затем время ожидания и отключение.

Как я уже сказал, этот код работал в течение нескольких недель. Я не вижу ничего другого, что изменилось. Есть ли способ, которым я могу собрать больше данных, чтобы выяснить, что происходит?

Приветствия и спасибо!

Python версия 3.6.7 discord.py версия 0.16.12

#relevant portion of code 

#!gijoe
elif message.content.startswith('!gijoe'): #random quote 3
    member=server.get_member(message.author.id)
    check_role = get(server.roles, name='Admin')
    if check_role in member.roles:
        server=client.get_server(config.SERVER_ID)
        member=server.get_member(message.author.id)
        channel=member.voice.voice_channel
        textr = 'https://www.youtube.com/watch?v=pele5vptVgc'
        if(client.is_voice_connected(server)):
            id=server.id
            players[id].stop()
            voice = client.voice_client_in(server)
            await voice.disconnect()
            voice = await client.join_voice_channel(channel)
        else:
            voice = await client.join_voice_channel(channel)

        try:
            player = await voice.create_ytdl_player(textr)
            players[server.id]=player
            player.volume=0.5
            player.start()
        except Exception as e:
            print(e)

Игнорирование исключения в трассировке on_message (последний вызов сделан последним):
Файл "/home/epoxe/.local/lib/python3.6/site-packages/discord/client.py",строка 307, в _run_event yield из getattr (self, event) (* args, ** kwargs) Файл "main.py", строка 577, в on_message voice = await client.join_voice_channel (channel) File "/ home / epoxe /. local / lib / python3.6 / site-packages / discord / client.py ", строка 3198, в файле join_voice_channel подъема файла" /home/epoxe/.local/lib/python3.6/site-packages/discord/client. py ", строка 3195, в join_voice_channel data = yield из asyncio.wait_for (voice_data_future, timeout = 10.0, loop = self.loop) Файл" /usr/lib/python3.6/asyncio/tasks.py ", строка 362, вwait_for повышение futures.TimeoutError () concurrent.futures._base.TimeoutError

Игнорирование исключения в трассировке on_message (большинство rпоследний вызов ecent):
Файл "/home/epoxe/.local/lib/python3.6/site-packages/discord/gateway.py", строка 676, в msg = poll_event: выход из asyncio.wait_for (self. recv (), timeout = 30.0, loop = self.loop) Файл "/usr/lib/python3.6/asyncio/tasks.py", строка 358, в wait_for, для возврата файла fut.result () "/ home / epoxe /.local / lib / python3.6 / site-packages / websockets / protocol.py ", строка 319, в recv поднять ConnectionClosed (self.close_code, self.close_reason) websockets.exceptions.ConnectionClosed: соединение WebSocket закрыто: code = 4006, причина = сеанс больше недействителен.

Вышеуказанное исключение было прямой причиной следующего исключения:

Трассировка (последний вызов был последним): Файл "/ home / epoxe /. local / lib / python3.6 / site-packages / discord / client.py ", строка 307, в _run_event выход из getattr (self, event) (* args, ** kwargs) Файл" main.py ", строка 761,в on_message voice = await client.join_voice_channel (channel) Файл "/home/epoxe/.local/lib/python3.6/site-packages/discord/client.py", lКроме того, 3211, в join_voice_channel выход из файла voice.connect () "/home/epoxe/.local/lib/python3.6/site-packages/discord/voice_client.py", строка 258, в соединении self.ws = yield изФайл DiscordVoiceWebSocket.from_client (self) "/home/epoxe/.local/lib/python3.6/site-packages/discord/gateway.py", строка 595, в возвращении from_client (выход из файла cls.from_client (клиент))"/home/epoxe/.local/lib/python3.6/site-packages/discord/gateway.py", строка 595, в возвращении from_client (выход из файла cls.from_client (клиент)) "/ home / epoxe /. local / lib / python3.6 / site-packages / discord / gateway.py ", строка 591, в from_client возвращает asyncio.wait_for (ws.poll_event (), timeout = 60, loop = client.loop) Файл" / usr/lib/python3.6/asyncio/tasks.py ", строка 358, в файле wait_for return fut.result ()" /home/epoxe/.local/lib/python3.6/site-packages/discord/gateway.py", строка 679, в poll_event вывести ConnectionClosed (e) из e discord.errors.ConnectionClosed: соединение WebSocket закрыто: code = 4006, причина = сеанс не завершенNger действует ..

...