【发布时间】:2021-07-24 03:42:02
【问题描述】:
所以我创建了一个书签机器人,它可以向使用书签表情符号对消息做出反应的用户发送 DM。机器人将 DM 中的消息 URL 发送给用户,并使用 X 表情符号做出反应。这个想法是,当用户在 DM 频道中也对 X 表情符号做出反应时,该消息将被删除。
但是,它并不完全正确。当导航到 DM 频道时,消息会自行删除。
这是我的代码;
import discord
import os
from datetime import datetime
intents = discord.Intents.default()
intents.members = True
embed = discord.Embed()
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_raw_reaction_add(payload):
message_id = payload.message_id
channel_id = payload.channel_id
channel = client.get_channel(channel_id)
if isinstance(channel,discord.channel.DMChannel) == False:
emoji = payload.emoji
user = payload.member
message = await channel.fetch_message(message_id)
if emoji.name == "????":
print(user.id)
print(message.content)
print("Channel ID = " + str(channel_id))
#print(emoji.name)
send = await user.send("**Bookmark Created:** " + str(datetime.now())[:-7] + "\n" + message.jump_url)
await send.add_reaction("❌")
elif isinstance(channel,discord.channel.DMChannel) == True:
dm_message_id = payload.message_id
dm_channel_id = payload.channel_id
#guild_id = payload.guild_id
#guild = client.get_guild(payload.guild_id)
dm_channel = client.get_channel(dm_channel_id)
dm_emoji = payload.emoji
dm_user = payload.member
dm_message = await dm_channel.fetch_message(dm_message_id)
if dm_emoji.name == "❌":
await dm_message.delete()
client.run(os.getenv('TOKEN'))
任何帮助将不胜感激:)
【问题讨论】:
标签: python discord discord.py