python-3.x - Discord.py 删除除 pin 消息之外的所有消息
问题描述
目前我的不和谐机器人有一个功能,当一个人输入 !delete 时,它会删除频道中的大部分文本。但是,它会删除所有消息,包括固定的消息。如何增强我的代码以使其不会删除 pin 消息?
if message.content.startswith('!delete'):
tmp = await client.send_message(message.channel, 'Clearing messages...')
async for msg in client.logs_from(message.channel):
await client.delete_message(msg)
解决方案
或者您可以使用purge_from
函数和使用check
参数仅删除非固定消息。
dicord.py:
if message.content.startswith('!delete'):
await client.purge_from(channel, limit=None, check=lambda msg: not msg.pinned)
discord.py 重写:
if message.content.startswith('!delete'):
await channe.purge(limit=None, check=lambda msg: not msg.pinned)
推荐阅读
- javascript - 如何制作月度报告
- node.js - npm 错误:未定义 internalBinding
- sql - 查询是否存在多个多对多关系
- typesafe-config - 来自 envs 的 HOCON 数组替换
- apache-kafka - 从 Avro Debezium 数据创建基于 Avro 的 KSQL 流会生成奇怪的模式
- java - 无法从 spring cloud consul 加载 logback.xml
- html - iFrame 和 Table 改变社交图标的样式
- yaml - YAML 错误错误:在解析块映射时“
", - sql - 根据某些条件减去日期时间项
- google-apps-script - 谷歌工作表侧边栏关闭自定义脚本