Python向discord发送消息
我有以下问题。 我有多线程的应用程序,我希望它发送一个消息到不协调通道时,具体条件得到满足。 discord模块:是按照异步/等待符号创建的。我的应用程序是多线程的,因为它比IO更受CPU的限制。 我想将我的多线程应用程序与async/await discord模块结合起来。 我已经创建了以下代码Python向discord发送消息,python,multithreading,async-await,discord,python-asyncio,Python,Multithreading,Async Await,Discord,Python Asyncio,我有以下问题。 我有多线程的应用程序,我希望它发送一个消息到不协调通道时,具体条件得到满足。 discord模块:是按照异步/等待符号创建的。我的应用程序是多线程的,因为它比IO更受CPU的限制。 我想将我的多线程应用程序与async/await discord模块结合起来。 我已经创建了以下代码 import discord import asyncio from threading import Thread class DiscordConnector: def __init__
import discord
import asyncio
from threading import Thread
class DiscordConnector:
def __init__(self):
self.token = "token"
self.imageFolder = "folder"
self.client = discord.Client()
self.loop = asyncio.get_event_loop()
self.loop.create_task(self.client.start(self.token))
self.thread = Thread(target=self.loop.run_forever)
self.thread.start()
self.channels = {
"chanel1":channel1_id,
"channel2":channel2_id,
"channel3":channel3_id,
}
def sendMessage(self, symbol, imageFilename):
symbols = symbol.split("_")
symbol = symbols[0].lower()
interval = symbols[1]
self.client.get_channel(self.channels[symbol]).send("message", file=discord.File(file))
我通过创建DiscordConnector的对象并调用sendMessage方法在其他模块中调用它。
我遇到的问题是self.client.get_通道(self.channels[symbol])没有对象,它看起来无法从sendMessage访问self.client对象。
客户端的初始化看起来正常,因为服务器在discord应用程序中被标记为联机。
您是否知道如何将我的多线程应用程序与discord async/Wait语法结合起来,以便在需要时从DiscordConnector调用该方法,以便向discord频道发送消息。如果您手动调用
self.channels[symbol]
,它是否返回正确的“频道id”?是的,这是一个命令,它保存从频道名称到频道id的映射,并且self.channels[symbols]返回正确的id。确定,并且使用该id手动处理discord.Client()。get_channel()
?如果这些是基本问题,我很抱歉,但我只想涵盖所有基础。不,它也不起作用。就我的问题而言,我认为问题可能与线程有关,因为discord模块假定使用异步/等待语法,但我只想保留线程,并以某种方式包装客户端初始化,这需要事件循环等等。