Я использую discord.py и хочу создать бота, который может следить за форумом и отвечать на новые сообщения в режиме реального времени. В частности, я хочу, чтобы бот ответил сообщением типа «Здравствуйте, {author.mention}, пожалуйста, оставайтесь в этой теме и не делайте дубликатов. Спасибо!» когда пользователь создает новый пост.
Я изучил Discord API, но не знаю, как его реализовать. Я также не уверен, как настроить мониторинг новых сообщений в реальном времени.
Буду очень признателен за любые предложения или фрагменты кода. Спасибо!
В discord.py вы можете использовать .type
для возвращаемого типа message.channel
, чтобы получить его тип.
Пример:
@bot.event
async def on_message(message):
if message.channel.type == "public_thread":
await message.channel.send(message.author.mention)
# mentions the author every time a message is sent in a public thread
Таким образом, вы можете сохранить его локально. Сохраните идентификатор канала в файле JSON и выполните еще одну проверку.
Хорошо, я нашел ответ на проблему. Кажется, в discord.py есть событие on_thread_create
, которое позволяет вам делать что угодно после создания темы. Реализация кода:
@client.event
async def on_thread_create(thread):
# check if the thread is in the desired channel
if thread.parent.name == "my-forum":
# send a message to the thread
reply = f"Hello {thread.owner.mention}, please stay in this thread(Don't ping people in <@968504682387492885>) and do not make duplicates. If no one responds to your thread within 1hr, ping `WSC Tech Supporter` Thanks!"
await thread.send(reply)