Discord Python - запустить бота из другого файла с помощью async / await - PullRequest
2 голосов
/ 19 июня 2020

Я пытаюсь интегрировать свой код с ботом Discord, и я хочу, чтобы он был в разных файлах, проблема только в том, что я вызываю файл Discord без async / await, функции одного из файлов (основного файла или discord file) не запускаются в зависимости от порядка, в котором я их вызываю.

Я новичок в async / await, и я написал базовый c прототип кода, который я тоже не могу заставить работать . Я был бы признателен за некоторую помощь здесь с причиной решения, пожалуйста.

Файл 1 - main.py

import discordNew
import asyncio


class Temp(discordNew.MyClient):
    async def hello(self):
        print("Hello")

    async def run_main(self):
        print("A")
        await self.hello()
        await self.runDiscordBot()
        print("B")


if __name__ == '__main__':
    asyncio.run(Temp().run_main()) ##Error on reading from the event loop self pipe
    Temp().run_main() ##RuntimeWarning: coroutine 'Temp.run_main' was never awaited

Файл 2 - discordNew.py

import discord

TOKEN = "token here"


class MyClient(discord.Client):

    async def on_ready(self):
        print('Logged on as', self.user)

    async def on_message(self, message):
        if message.author == self.user:
            return

        if message.content == 'ping':
            await message.channel.send('pong')

    async def runDiscordBot(self):
        client = MyClient()
        client.run(TOKEN)

Простите, если этот вопрос уже задавали раньше.

...