MediaWiki 管理员手册/反破坏 IRC 机器人
此页面记录了两个被反破坏频道广泛使用的机器人。
Computer 是最初的近期更改过滤机器人,作为 mIRC 脚本 编写的,由 White Cat 开发。它在 2005 年被 pgkbot 取代。
pgkbot 是一个由 pgk 开发的 python 机器人。它被设计为在一个频道中使用,并包含许多定制选项,例如插件支持、复杂的事件路由器、个人列表、个人用户姓名和文章标题监视列表、页面移动破坏的检测以及 IP 地址类别(如开放代理)。但是,配置很困难,而且它比较资源密集。
SWBot 是一个由 Tangotango 和 Az1568 开发的 C# 机器人。它被设计为在联网或多维基频道中使用。功能包括动态加载和卸载维基和频道、中央配置文件和数据库、全局列表、将全局更改自动广播到所有其他 SWBot 实例以及使用自动 MediaWiki 摘要检测页面清空和替换。但是,无法进行每频道事件配置。
CVNbot 是一个由 Pathoschild 用 Perl 编写的统一集中式机器人。它目前正在开发中,没有积极使用。该机器人旨在促进频道网络管理并提供编辑监控,而无需多余的功能。
- 常见机器人:ErosionBot-1、MiszaBot、TheDJBot、ClueBot(RC)。
通过在行的开头添加其名称或“computer”来向机器人发出命令。如果添加名称,该命令将仅被名为该名称的机器人识别。如果添加“computer”,则在频道中存在的所有机器人都会识别该命令。例如,如果你想将用户添加到 pgkbot 的黑名单中,你应该说 pgkbot bl add username
。或者,你可以将用户添加到频道中每个机器人的黑名单中。建议这样做,因为它会同步备份机器人。为此,你应该说 computer bl add username
。
用户可以发出哪些命令取决于他们所在的列表。
等级 | 用户 | 命令列表 |
---|---|---|
信息 | 任何用户 | 情报命令;help。 |
操作 | 有声用户 | 监视列表;情报;help、status、quiet、speak。 |
受限 | 频道操作员 | 所有命令。 |
机器人维护着几个用户列表,这些列表可以被报告、格式化和以不同于彼此的方式处理。
- Admins: 这是一个项目管理员列表。相关命令是
computer al add|del username
。 - Whitelist: 这是一个可信用户列表。相关命令是
computer wl add|del username
。 - Greylist: 这是一个临时黑名单,机器人会自动用最近被还原的用户或与 bnu 列表表达式匹配的用户来填充它。条目可以从列表中删除,但不能手动添加。
- Blacklist: 这是一个可疑用户列表。黑名单用户的全部编辑都会被报告。相关命令是
computer bl add|del username
。 - Bots: 这是一个项目机器人列表。相关命令是
computer bot add|del user
。
此表是对命令的简要概述。有关更多帮助,请将以下命令发送到 IRC 上的 pgkbot:pgkbot help <command>
。有两种可选标志可用于大多数命令。这些标志可以通过将它们追加到命令末尾来使用(如果同时使用,则必须在理由之前声明过期)。
- "
r=value
" 提供了一个理由。这对其他用户很有用,他们可能不知道为什么没有理由就将某些内容添加到列表中。 - "
x=value
" 提供以小时为单位的过期时间。在指定的小时数后,命令将自动撤销。
请注意,表格中使用了符号“[|]”;这些符号不应与机器人一起使用(例如,使用“pgk add blah”,而不是“pgk [add] blah”)。多个可能的动作表示为 [选项 1|选项 2];一次只能使用一个。值被指定为 <value>;所有字符串都接受 正则表达式。
命令 | 用法 | 描述 |
---|---|---|
aclo | computer aclo [add|del] IRC_name | 添加或删除可以发出受限机器人命令的用户。 |
配置 (设置) | computer config <option> <newvalue> | 修改配置值。请参阅以下深入文档。 |
配置 (列表) | computer config list | 列出当前设置 |
配置 (获取) | computer config [getadmins|getbots] | 直接从正在监控的维基中检索管理员或机器人的列表 |
配置 (读取) | computer config [readmsgs|readcmds] | 重新读取一些配置文件。 |
目标 (设置) | computer dest [add|del] #<频道名称> grey | 配置要向频道报告的事件。 |
目标 (交换) | computer dest swap #<频道名称> #<第二个频道名称> | 在两个频道之间切换报告的事件,这对于更改为预设设置很有用。 |
阅读器 | computer reader reset | 重置与最近更改频道的连接(如果机器人停止报告)。 |
命令 | 用法 | 描述 |
---|---|---|
帮助 | computer help <command> | 提供有关命令的详细帮助。如果没有指定命令,它将提供指向此页面的链接。 |
状态 | computer status | 提供有关机器人的基本状态信息,例如它是否正在报告并连接到 RC 馈送。 |
统计数据 | computer stats | 各种频道统计信息。 |
安静 | computer quiet | 停止向频道报告事件。 |
说话 | computer speak | 向频道报告事件。 |
acl | computer acl [add|del|show] <IRC_name> | 受信任的 IRC 用户列表。这些用户可以向机器人发出操作命令。 |
命令 | 用法 | 描述 |
---|---|---|
bl | computer bl [add|del|show] <IP 或用户名> | 不受信任或破坏用户列表。 |
wl | computer wl [add|del|show] <用户名> | 受信任的用户列表。 |
gl | computer gl [del|show] <用户名> | 可能不受信任或破坏用户的列表。 |
al | computer al [add|del|show] <用户名> | 管理员列表。 |
bot | computer bot [add|del|show] <用户名> | 机器人列表。 |
bnu | computer bnu [add|del|show] <字符串> | 报告包含该字符串的所有新用户名。 |
bna | computer bna [add|del|show] <字符串> | 报告包含该字符串的所有新建条目。 |
cvp | computer cvp [add|del|show] <字符串> | 报告对给定条目的所有编辑。 |
cnvp | computer cnvp [add|del|show] <条目名称> | 要忽略的条目列表。 |
cvi | computer cvi [add|del|show] <图片名称>.<扩展名> | 报告对特定图片名称的所有上传。 |
wheels | computer wheels [add|del|show] <字符串> | 报告重命名为标题包含该字符串的页面。 |
命令 | 用法 | 描述 |
---|---|---|
intel | computer intel <IP 或用户名> | 查询有关 IP 或用户名的信息。 |
aintel | computer aintel <条目名称> | 查询有关条目的信息。 |
iintel | computer iintel <图片名称>.<扩展名> | 查询有关图片的信息。 |
这些设置会影响机器人过滤原始最近更改以生成报告事件的方式。它们可以通过命令 computer config list
查看,并通过命令 computer config <option> <new value>
修改。
选项 | 描述 |
---|---|
editbig | 可能的胡言乱语(大量添加内容) |
editblank | 可能的清空(大量删除内容) |
newbig | 可能的版权侵权(新建条目大小很大) |
newsmall | 可能的破坏或存根(新建条目大小很小) |
选项 | 描述 |
---|---|
blockconflict | 要报告的单个用户的同时封禁次数。 |
glonrollback | 如果管理员回滚了用户的编辑,则将用户添加到灰名单的分钟数。 |
flagnewuser | 将新用户添加到灰名单的小时数。 |
glonbnu | 将与 bnu 列表上的字符串匹配的新用户添加到灰名单的分钟数。 |
选项 | 描述 |
---|---|
pseudonym | 机器人除了其名称之外,还应该响应的另一个名称。这在反破坏网络频道中应为“computer”。 |
startupquiet | 启动时不要报告事件(切换,“yes”或“no”) |
bnubnasame | 同步 不良新用户名 和 不良新建条目名称 列表。 |
这些选项会切换向频道报告哪些事件。它们可以通过命令 computer dest list
和 computer dest [add|del] #<频道名称> <事件>
访问。事件列在下面。每个事件只会向频道报告一次,无论是否符合这些类别中的多个类别。
以下表格中的“操作”是指对数据库的所有可见更改,包括编辑、页面移动和删除。
事件 | 描述 |
---|---|
-admin | 不要报告管理员的操作。 |
-white | 不要报告白名单用户的操作。 |
-bot | 不要报告机器人的操作。 |
black | 报告黑名单用户的全部操作。 |
grey | 报告灰名单用户的全部操作。 |
newuser | 报告所有新用户的创建。 |
ip | 报告匿名用户的全部编辑。 |
iptmp | 报告未登录用户对模板的所有编辑 |
ipcat | 报告未登录用户对分类的所有编辑 |
事件 | 描述 |
---|---|
wwuser | 报告与 **bnu** 列表中的条目匹配的新用户名。 |
wheeler | 报告页面移动到与 **wheel** 列表中的条目匹配的标题。 |
bna | 报告与 **bna** 列表中的条目匹配的文章创建。 |
cvp | 报告对 **cvp** 列表中的页面进行的编辑。 |
cvi | 报告对 **cvi** 列表中的图像进行的上传。 |
事件 | 描述 |
---|---|
block | 报告封禁。 |
unblock | 报告解除封禁。 |
delete | 报告页面删除。 |
move | 报告页面移动。 |
protect | 报告非用户空间页面保护/取消保护。 |
upload | 报告文件上传。 |
事件 | 描述 |
---|---|
bigremove | 报告可能的清空(删除超过配置 **bigremove** 的内容)。 |
bigedit | 报告可能的乱码(添加超过配置 **bigedit** 的内容)。 |
bignew | 报告可能的版权侵犯(创建大小超过配置 **bignew** 的页面)。 |
tinynew | 报告可能的无意义内容(创建大小小于配置 **tinynew** 的页面)。 |
事件 | 描述 |
---|---|
cmdsq | 监听此频道中的命令,但除非通过昵称而不是“computer”进行寻址,否则不会响应。 |
cmds | 监听此频道中的命令,并做出响应。 |
- **Python:** 机器人需要 Python 环境才能运行,可以在 python.org 下载页面 免费获取。建议您为所有用户安装到C:\Python并启用所有选项。
- **Twisted:** 还需要 Twisted Python 库,可以在 官方网站 获取。
- **注意** - Pgkbot 只能与 Python 2.4 或 2.5 版本一起使用,不能与旧版本一起使用。
- 从 pathos.ca/tools/pgkbot 下载 pgkbot 的最新公开版本 (1.7)。
- 将其解压缩到C:\pgkbot.
在使用之前,需要编辑几个文本文件。
C:\pgkbot\Config\IRCConsole.conf | ||
---|---|---|
字段 | 值 | 说明 |
server | irc.freenode.net | 这是机器人将连接到的 IRC 服务器。 |
port | 6667 | 要连接到的服务器端口;此值应该没问题。 |
nick | botnick | 将其更改为您要使用的机器人的昵称。**不要**使用“pgkbot”或“computer”。 |
password | password | 标识时要使用的密码。如果未使用 Nickserv,请注释掉此行。 |
owner | yournick | 更改为您的昵称。这使您能够完全访问界面。 |
C:\pgkbot\Config\RCReader.conf | ||
---|---|---|
字段 | 值 | 说明 |
server | irc.wikimedia.org | 这是机器人将连接到的 IRC 服务器,用于获取 RC 馈送。 |
port | 6667 | 要连接到的服务器端口;此值应该没问题。 |
nick | yournick | 更改为您的昵称。这使您能够完全访问界面。 |
C:\pgkbot\Config\en\StaticConfig | ||
---|---|---|
字段 | 值 | 说明 |
controlchannel | #pgktesting | 机器人将报告到的频道。 |
rcsourcechannel | #en.wikipedia | 包含原始 RC 馈送的频道(参见 IRC channels)。 |
- 打开一个 DOS 提示符。
- 导航到 pgkbot 安装所在的目录。
- 输入 **c:\python24\python.exe CVUBot.py en**。
- pgkbot 连接后将保持静默。请务必使其说话并路由一些事件(参见上文)。
- 常见机器人:SWBot*(SWBot2 除外)、SWMTBot*、TheDJBot(3-5)。
SWMTBot 是 pgkbot 移植到 C# 的版本,专门为满足 小型维基监控团队 和其他在单个频道中监控大量馈送的用户的需求而设计。大多数命令都保持与 pgkbot 等效命令相同,除非有必要;消息也尽可能保持与 pgkbot 相似。
SWMTBot 的新功能 | pgkbot 中存在但 SWMTBot 中不存在的功能 |
---|---|
|
|
所有 **全局** 列表都会自动在所有 SWMTBot 之间同步;**每个维基** 列表则不会同步。所有维基都使用一个全局文章观察列表,每个维基也使用一个单独的列表;您可以通过省略“p=”参数(请参见下面的命令列表以了解更多信息)来添加/删除/显示全局列表中的条目。
全局列表 | 每个维基列表 |
---|---|
|
|
全局命令 | ||
---|---|---|
命令 | 描述 | 示例 |
quit | 退出机器人 | SWMTBot quit |
restart | 重启机器人 | SWMTBot restart |
list | 返回所有当前监控的维基的列表 | SWMTBot list |
**load** wiki.name [interwiki] | 加载一个维基以进行监控 | SWMTBot load en.wikipedia en SWMTBot load meta.wikimedia |
**reload** wiki.name | 从维基下载新消息;如果该维基上 MediaWiki: 命名空间中的任何日志条目消息已更改,请使用此命令 | SWMTBot reload fr.wikipedia |
batchreload | 对所有当前加载的维基执行 **reload** 操作。极其占用资源,不建议使用 | SWMTBot batchreload |
**drop** wiki.name | 停止监控一个维基 | SWMTBot drop als.wikipedia |
**purge** wiki.name | 从数据库中删除与特定维基相关的用户和观察列表项目 | SWMTBot purge als.wikipedia |
msgs | 从 Console.msgs 文件重新加载消息;仅在文件已更改时才需要 | SWMTBot msgs |
**bleep** wiki.name | 查找监控特定项目的机器人。您可以向任何联网机器人发出此命令以接收相同的结果 | SWMTBot bleep commons.wikimedia |
count | 查询每个机器人监控的维基数量和每个机器人的版本。您可以向任何联网机器人发出此命令以获得相同的结果 | SWMTBot count |
列出命令 | ||
命令 | 描述 | 示例 |
bl 添加/删除/显示 用户名 [x=持续时间] [r=原因] | 在全局黑名单中添加、删除或显示项目。将 x=0 设置为无限期 | SWMTBot bl add Tangotango x=0 r=Bad vandal (将 Tangotango 无限期添加到全局黑名单) SWMTBot bl del Tangotango (从全局黑名单中删除 Tangotango) |
gl 删除 用户名 | 从灰名单中删除用户。如果您想将用户列入白名单,但他们已在灰名单中,请使用此方法。将他们从 gl 中删除并添加到 wl 中。 | SWMTBot gl del Mike.lifeguard (从灰名单中删除 Mike.lifeguard) |
wl 添加/删除/显示 用户名 [x=持续时间] [r=原因] | 在白名单中添加、删除或显示项目。将 x=0 设置为无限期 | (见上文;wl 的语法与 bl 相同) |
cvp 添加/删除/显示 文章名称 [p=wiki.name] [x=持续时间] [r=原因] | 在观察列表中添加、删除或显示文章。省略 p= 以监控所有维基中具有相同名称的文章;将 x=0 设置为无限期 | SWMTBot cvp add United States p=en.wikipedia x=0 (将“美国”添加到 en.wikipedia 观察列表) SWMTBot cvp add Main Page x=0 (将所有维基中名为“主页”的页面添加到观察列表) |
al 添加/删除/显示 用户名 p=wiki.name [x=持续时间] [r=原因] | 在特定维基的管理员列表中添加、删除或显示项目。将 x=0 设置为无限期 | SWMTBot al add Tangotango p=ga.wikipedia (将 Tangotango 添加到 ga.wikipedia 的管理员列表) |
bots 添加/删除/显示 用户名 p=wiki.name [x=持续时间] [r=原因] | 在特定维基的标记机器人列表中添加、删除或显示项目。将 x=0 设置为无限期 | (见上文;bots 的语法与 al 相同) |
bnu 添加/删除/显示 正则表达式 [x=持续时间] [r=原因] | 在全局错误的新用户名列表中添加、删除或显示项目。将 x=0 设置为无限期 | SWMTBot bnu add Tangot.*?ngo x=128 r=vandal meme (将 Tangot.*?ngo 添加为错误的新用户名) |
bna 添加/删除/显示 正则表达式 [x=持续时间] [r=原因] | 在全局错误的新文章标题列表中添加、删除或显示项目。将 x=0 设置为无限期 | SWMTBot bna add index\.php r=vandal meme (将“index.php”匹配为错误的新页面标题) |
bes 添加/删除/显示 正则表达式 [x=持续时间] [r=原因] | 在全局错误的编辑摘要列表中添加、删除或显示项目。将 x=0 设置为无限期 | SWMTBot bes add !{3,} r=Too many exclamation marks (使 SWMTBot 标记任何具有 3 个或更多感叹号的编辑摘要) |
config getadmins wiki.name | 从指定的项目下载管理员列表并自动将其添加到 SWMTBot 数据库 | SWMTBot config getadmins en.wikipedia |
config getbots wiki.name | 从指定的项目下载标记的机器人列表并自动将其添加到 SWMTBot 数据库 | SWMTBot config getbots da.wiktionary |
batchgetusers | 对所有当前加载的维基执行 getadmins 和 getbots | SWMTBot batchgetusers |
安装
[edit | edit source]SWMTBot 经过测试并积极开发,可在 Mac OS X、Linux (Debian) 和 Windows 上运行。该软件在 MIT 许可证 下获得许可。
CVNbot
[edit | edit source]参见 m:CVN/CVNbot.
另请参见
[edit | edit source]支持
[edit | edit source]- #countervandalism 用于 反破坏网络运营的频道中的 机器人
- pgkbot
- pgk— 用于评论、建议和解决机器人脚本故障。