хранение сообщений с помощью бота discord

#discord.py #python-decorators

#discord.py #python-декораторы

Вопрос:

Я пытаюсь сохранять сообщения с помощью бота discord, чтобы я мог узнать, как элементы сообщений различаются между сообщениями.

Однако я новичок в некоторых аспектах этого кодирования, то есть декораторов. В настоящее время часть кода моих ботов, которая взаимодействует с сообщениями, такова:

 messages=[]

@bot.event
async def on_message(message,messages):
    print("someone said something")
    messages=messages message
    if message.author == bot.user:
        return messages
  

Я думаю, что это неправильно. Что я пытаюсь сделать, так это добавлять сообщение в сообщения каждый раз, когда происходит событие, чтобы позже я мог просмотреть эту переменную и посмотреть, как меняются различные элементы сообщений.

Как мне изменить вышесказанное, чтобы разрешить это?

Ответ №1:

Вы можете использовать только 1 параметр в on_message событии. Кроме того, вы не можете добавлять элементы в список с помощью . А также хранение данных в переменной — не очень хорошая идея, потому что всякий раз, когда вы перезапускаете бота, он будет удален. Вы можете просто сохранить их в текстовом файле.

 @bot.event
async def on_message(message):
    print("someone said something")
    file = open('messages.txt', 'a')
    file.write(message.content   'n')
    file.close()
  

Редактировать

Если вы хотите сохранить всю информацию сообщения, вы можете сделать:

 file.write(f'{message}n')
  

или

 file.write(str(message)   'n') 
  

Комментарии:

1. Спасибо! есть ли способ сделать это так, чтобы сохранить все элементы сообщения, а не только .content?

2. Почему вы хотите, чтобы он сохранял все элементы?

3. Потому что я пытаюсь понять, как они различаются между сообщениями