Я пытаюсь включить позиционные аргументы в функцию on_message с помощью discord.py, но получаю сообщение об ошибке ниже
File "/usr/lib/python3.8/site-packages/discord/client.py", line 312, in _run_event
await coro(*args, **kwargs)
TypeError: on_message() missing 3 required positional arguments: 'channels', 'textdata', and 'command'
Моя цель - передать каналы - имя канала на сервере Discord, текстовые данные - путь к текстовому файлу, команда - команда, которую пользователь введет в канал разногласий для возврата данных.
Я просто хотел спросить, можно ли передавать позиционные аргументы в on_message или сообщение может быть единственным ?
У меня есть код
channels =[]
@client.event
async def on_message(message, channels , textdata, command):
id = client.get_guild(7319460*****229982)
if str(message.channel) in channels:
if message.content.find(command) != -1:
with open(textdata, 'r') as file:
msg = file.read(2000).strip()
while len(msg) > 0:
await message.author.send(msg)
msg = file.read(2000).strip()
def callall():
on_message(channels="boxingmma", textdata="/home/brendan/Desktop/Python/liveonsatscraper/testlasttime.txt", command="!boxingfixtures")
Причина, по которой я пытаюсь это сделать, заключается в том, что мне нужно иметь возможность запускать приведенный выше код на нескольких каналах Discord, чтобы выводить данные из пути к файлам в текстовых данных и предоставить другую команду в зависимости от требуемых данных. Я мог бы скопировать приведенный выше код 100 раз и ввести жестко закодированные строковые значения для каждого из аргументов, но я подумал, что было бы лучше передать эти значения в функцию выше, чтобы сохранить повторяющийся код.
Заранее благодарю любой, кто может предоставить руководство или решение этой проблемы.