如何使用discord.py为Discord频道上传的图片自动添加爱心反应
Discord.py 自动添加爱心反应实现方案
前置准备
- 确保你使用的discord.py版本为2.0及以上
- 前往Discord开发者平台的Bot管理页,开启Message Content Intent权限
- 给Bot分配目标频道的「读取消息」「读取消息历史」「添加反应」权限
完整实现代码
import discord from discord.ext import commands # 配置需要的Intents intents = discord.Intents.default() intents.message_content = True intents.messages = True # 初始化Bot,命令前缀可按需修改,不需要命令功能可随意填写 bot = commands.Bot(command_prefix="!", intents=intents) # 替换为你自己的#art and creativity频道ID,开启Discord开发者模式后右键频道即可复制 TARGET_CHANNEL_ID = 123456789012345678 # 支持的图片后缀,可按需新增 IMAGE_EXTENSIONS = {"png", "jpg", "jpeg", "gif", "webp"} @bot.event async def on_message(message: discord.Message): # 过滤Bot自身发送的消息,避免触发循环 if message.author.bot: return # 仅处理目标频道的消息 if message.channel.id != TARGET_CHANNEL_ID: return # 检查消息是否包含图片附件 has_image = False for attachment in message.attachments: file_ext = attachment.filename.split(".")[-1].lower() if file_ext in IMAGE_EXTENSIONS: has_image = True break # 符合条件则添加爱心反应 if has_image: await message.add_reaction("❤️") # 如果同时需要Bot响应命令则保留此行,否则可删除 await bot.process_commands(message) # 替换为你自己的Bot Token即可运行 bot.run("YOUR_BOT_TOKEN_HERE")
可选调整说明
- 如果你希望用频道名匹配而非更稳定的ID匹配,可将频道判断逻辑改为
if message.channel.name == "art and creativity",缺点是频道改名后功能会失效 - 要新增支持的图片格式,直接往
IMAGE_EXTENSIONS集合中添加对应后缀即可 - 要更换反应表情,直接替换
add_reaction方法中的字符即可,自定义表情需使用对应格式
内容的提问来源于stack exchange,提问作者Candy Cat
相关产品推荐
相关产品推荐

