我正在构建一个Discord机器人,该机器人解析XML文件(在这种情况下为选举数据),并发现其中嵌入的“ chyron”消息。然后,它应该将此“ chyron”发送到它所在的服务器上的指定文本通道。但是,无论我做什么,我似乎都无法收到要发送的消息。我可以在注释指定的地方放置任何可以发送消息的代码吗?
我尝试使用@ client.event标准语法来定义事件,尽管我认为这无论如何都行不通,因为该机器人需要在不从文本通道中发出任何命令提示的情况下发送消息。
class ExampleHandler(FileSystemEventHandler): #part of watchdog which monitors for changes in files directories
def on_created(self, event): #when a file is created
directory = os.fsencode("TestingDump")
for file in os.listdir(directory): #for every new file in specified directory
print("Got event for file %s" % event.src_path) #debugging purposes
filename = os.fsdecode(file)
if fnmatch.fnmatch(filename, "Test_Snap_General_Election_rush_*.xml"):
tree = ET.parse(os.fsdecode(directory) + '\\' + filename) #XML parser
root = tree.getroot() #XML parser
for Constit in root.iter("Constituency"): #XML parser
ConstitChyron = Constit.get("paStyleMessageText") #obtains ConstitChyron from XML file
print(ConstitChyron) #debugging purposes
#bot sends value of ConstitChyron as message to specific text channel in Discord here
输入代码时
async def discordChyron():
channel = client.fetch_channel(639480128627539978)
await channel.send(ConstitChyron)
用于尝试发送消息(用于在主代码中的注释指示的位置),该程序不执行任何操作。 5秒后,python shell中开始出现不和谐的心跳警告。