C-Python asyncio: запуск discord.py в потоке

Я написал это, пытаясь решить ту же проблему:

https://github.com/robtandy/randomdict

Он имеет O (1 ) произвольный доступ к ключам, значениям и элементам.

0
задан IgorZ 7 March 2019 в 11:49
поделиться

1 ответ

Отвечая на мой собственный вопрос:

Я должен поблагодарить этот источник asyncio-you-a-complex-beast , где я наконец-то нашел решение. Окончательный рабочий код выглядит следующим образом:

import discord
import asyncio
import threading

TOKEN = '12345'
client = discord.Client()


async def start():
    await client.start(TOKEN) # use client.start instead of client.run


def run_it_forever(loop):
    loop.run_forever()


def init():
    asyncio.get_child_watcher() # I still don't know if I need this method. It works without it.

    loop = asyncio.get_event_loop()
    loop.create_task(start())

    thread = threading.Thread(target=run_it_forever, args=(loop,))
    thread.start()


@client.event
async def on_message(message):
    if message.author == client.user:
        return

    print("on_message content: %s, channel: %s" % (message.content, message.channel))
    await message.channel.send('Hello!')


@client.event
    async def on_ready():
    print("Discord bot logged in as: %s, %s" % (client.user.name, client.user.id))

Моя главная ошибка заключалась в том, что для игры, которую я скомпилировал и использовал последнюю версию rewrite, находясь внутри системы, я получил 0.16.12 и прочитал документация для 0.16.12 , в то время как мне пришлось посмотреть на discord.py.rewrite (например, внутри on_message я использовал неверно client.send_message, а мне пришлось использовать message.channel.send)

0
ответ дан IgorZ 7 March 2019 в 11:49
поделиться
Другие вопросы по тегам:

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