我在JavaScript中有一个不协调的机器人,我需要在24小时内启动一个计时器,并清除某个频道中的所有消息,如果它们不是图片或链接,因为我不知道计时器在这里是如何工作的,也不知道如何区分带文本的消息和带图片的消息,请帮忙(请不要写现成的脚本,但至少解释一下它的工作原理:(
要检查消息是否包含图像,可以检查Collection<Message>.attachments.first()
,如果未附加图像,则返回false。
const image = <Message>.attachments.first();
if (!image) <Message>.delete();
检查链接的一种方法是查看<Message>.content
是否以'http'
开头
const hasLink = <Message>.content.startsWith('http');
if (!hasLink) <Message>.delete();
然而,绕过这一点非常容易。您可能想要查看正则表达式(Regex(
<Message>
是消息对象的占位符。
此处:
if(!message.attachments.first() && !message.content.match(/https?://.+/)) message.delete();
正则表达式查找"http"
、可选的"s"
以及链接的其余部分。如果它本身就是一个链接,我不相信有什么值得关注的。