SCP-079-LONG 说明

SCP-079-LONG 说明

SCP-079
删除超长消息

简介

群组可自定义超长消息的长度,机器人会根据群组的设置删除某长度以上的所有文本消息。点此获取源代码


注意

LONG 所指的消息长度,是指消息中包含的纯文本文字的字节长度。

一个汉字 “好” 的字节长度是 3 ,一个字母 "a" 的字节长度是 1


机制说明

一些必要的说明


当群组中普通用户发送的消息文字,其字节长度大于群组设定上限时,将导致该消息被删除,用户将面临 10 秒的惩罚时间,如果用户在此期间仍发送消息,将无视消息内容直接删除,同时重新计时。因此如果用户的消息被机器人删除,请等待 10 秒,方可正常发言,不要在此期间持续发送消息,否则会一直在 10 秒的惩罚状态中。


此机器人与本项目其他机器人获取消息的方式不同,本项目其他机器人采用 MTProto,而 LONG 使用 Bot API,这是由于在编写该机器人时发现的问题和当时的条件所决定的,具体原因请见问与答


群组设置

您可以通过命令进行手动的调整消息字节长度限制(推荐),下面的例子表示设置为 6000:


/config_long limit 6000


注意,长度应在 500 到 10000 之间,且是 500 的整数倍。


下面介绍图中显示的按钮设置(在群组中发送 /config long 获取):


SCP-079-LONG 的设置界面


协助删除:LONG 通常不会封禁用户,而只是删除消息,只有用户评分过高时,才有可能导致被封禁。开启此选项后,LONG 在封禁用户时,令 USER 协助删除用户所发的所有消息。


禁言模式:开启后,当 LONG 认为应该封禁用户时,选择禁言该用户,而不是封禁。


消息字节上限:请注意此处的数值是消息包含文字的 “字节” 长度,一个英文字母 “a” 占据 1 个字节长度,一个汉字 “好” 占据 3 个字节长度。通过右侧的加减号按钮可以调整上限的数值。当群组中普通用户发送的消息文字,其字节长度大于此上限时,将导致该消息被删除。默认值为 9000 。


问与答

有问就有答


Q:为何该机器人使用 Bot API 而不是 MTProto?

A:在编写该机器人时,我们发现,其他 SCP-079 机器人(采用框架 Pyrogram)并不能以普通 Bot 帐户接收到群组内文字字节长度超过 10000 的消息(旁证 https://t.me/PyrogramChat/88031 )。NOSPAM、CLEAN 等机器人无法接收、因此无法处理这类超长的消息,即,文字字节长度超过 10000(汉字个数超过 3333)的广告消息 SCP-079 机器人在当时是完全无法过滤处理的。因此在当时的条件下,我们选择使用了 Bot API(采用框架 python-telegram-bot)进行了 LONG 的编写。现在不明确此问题是否仍存在,但由于改用此框架的 LONG 已完善,实现了和其他机器人的完整对接,故再未更改使用的框架。


Q:为什么我的群组里出现了超过 10000 字节长度的文字消息,但 LONG 并没有立刻删除?

A:由于 Telegram 的机制,使用 Bot API 不能在群内立即收到这种超长消息(旁证 https://t.me/PyrogramChat/88050 )。该超长消息在发送后,如群内有其他正常消息在其之后发送,机器人才会收到之前的超长消息。因此,LONG 设定了响应两种命令: /l 和 /long ,群员发送这两种命令的任意一个都会被 LONG 回收删除,同时由于此命令是 “正常的短消息”,因此会令 LONG 接收到之前群内的超长消息。当然,群员不发送这两种命令,而发送正常的对话,也会令 LONG 收到之前的 10000 字节以上文字消息。


申请使用或自建

如欲申请使用,请查看申请方法。然而,我们鼓励您通过源代码自行建立此机器人,如搭建过程中有任何疑问请至讨论群 @SCP_079_CHAT 提出。


Report Page