Я создаю бот Discord, который анализирует XML-файл (в данном случае данные о выборах) и находит встроенное в него сообщение «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 начинает появляться предупреждение о разрывах пульса.