跳转到内容

MediaWiki 管理员手册/反破坏 IRC 机器人

来自维基教科书,开放书籍,开放世界

此页面记录了两个被反破坏频道广泛使用的机器人。

机器人概述

[编辑 | 编辑源代码]

Computer 是最初的近期更改过滤机器人,作为 mIRC 脚本 编写的,由 White Cat 开发。它在 2005 年被 pgkbot 取代。

pgkbot 是一个由 pgk 开发的 python 机器人。它被设计为在一个频道中使用,并包含许多定制选项,例如插件支持、复杂的事件路由器、个人列表、个人用户姓名和文章标题监视列表、页面移动破坏的检测以及 IP 地址类别(如开放代理)。但是,配置很困难,而且它比较资源密集。

SWBot 是一个由 TangotangoAz1568 开发的 C# 机器人。它被设计为在联网或多维基频道中使用。功能包括动态加载和卸载维基和频道、中央配置文件和数据库、全局列表、将全局更改自动广播到所有其他 SWBot 实例以及使用自动 MediaWiki 摘要检测页面清空和替换。但是,无法进行每频道事件配置。

CVNbot 是一个由 Pathoschild 用 Perl 编写的统一集中式机器人。它目前正在开发中,没有积极使用。该机器人旨在促进频道网络管理并提供编辑监控,而无需多余的功能。

常见机器人:ErosionBot-1、MiszaBot、TheDJBot、ClueBot(RC)。

使用命令

[编辑 | 编辑源代码]

通过在行的开头添加其名称或“computer”来向机器人发出命令。如果添加名称,该命令将仅被名为该名称的机器人识别。如果添加“computer”,则在频道中存在的所有机器人都会识别该命令。例如,如果你想将用户添加到 pgkbot 的黑名单中,你应该说 pgkbot bl add username。或者,你可以将用户添加到频道中每个机器人的黑名单中。建议这样做,因为它会同步备份机器人。为此,你应该说 computer bl add username

用户可以发出哪些命令取决于他们所在的列表。

等级 用户 命令列表
信息 任何用户 情报命令;help
操作 有声用户 监视列表;情报;helpstatusquietspeak
受限 频道操作员 所有命令。

用户列表

[编辑 | 编辑源代码]

机器人维护着几个用户列表,这些列表可以被报告、格式化和以不同于彼此的方式处理。

  • 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 listcomputer 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 版本一起使用,不能与旧版本一起使用。
  1. pathos.ca/tools/pgkbot 下载 pgkbot 的最新公开版本 (1.7)。
  2. 将其解压缩到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)。

运行机器人

[编辑 | 编辑源代码]
  1. 打开一个 DOS 提示符。
  2. 导航到 pgkbot 安装所在的目录。
  3. 输入 **c:\python24\python.exe CVUBot.py en**。
  4. pgkbot 连接后将保持静默。请务必使其说话并路由一些事件(参见上文)。
常见机器人:SWBot*(SWBot2 除外)、SWMTBot*、TheDJBot(3-5)。

与 pgkbot 的比较

[编辑 | 编辑源代码]

SWMTBot 是 pgkbot 移植到 C# 的版本,专门为满足 小型维基监控团队 和其他在单个频道中监控大量馈送的用户的需求而设计。大多数命令都保持与 pgkbot 等效命令相同,除非有必要;消息也尽可能保持与 pgkbot 相似。

SWMTBot 的新功能 pgkbot 中存在但 SWMTBot 中不存在的功能
  • 热插拔维基(按需加载/卸载)
  • 支持以最少的资源使用量同时监控大量维基
  • 一个包含所有维基信息的配置文件
  • 一个 SQLite 数据库,使用最少的资源,用于所有维基
  • 全局黑名单/白名单/灰名单
  • 全局用户名/文章标题观察列表(支持正则表达式)
  • 全局编辑摘要观察列表(标记潜在的破坏性编辑摘要;支持正则表达式)
  • 自动将所有全局列表广播到其他 SWMTBot
  • 捕获页面清空/替换(使用新的自动摘要)
  • 插件
  • 数据库后端的多种选择
  • Telnet 界面
  • 复杂的目标/事件路由器
  • 单独的黑名单/白名单
  • 单独的用户名/文章标题观察列表
  • Wheeler 检测
  • IP 类别
  • 命令重命名

所有 **全局** 列表都会自动在所有 SWMTBot 之间同步;**每个维基** 列表则不会同步。所有维基都使用一个全局文章观察列表,每个维基也使用一个单独的列表;您可以通过省略“p=”参数(请参见下面的命令列表以了解更多信息)来添加/删除/显示全局列表中的条目。

全局列表 每个维基列表
  • 不良新用户名 (BNU)
  • 不良新文章标题 (BNA)
  • 不良编辑摘要 (BES)
  • 用户白名单 (WL)
  • 用户黑名单 (BL)
  • 用户灰名单 (GL)
  • 全局文章观察列表 (CVP)
  • 管理员列表 (AL)
  • 机器人列表 (BOTS)
  • 文章观察列表 (CVP)
全局命令
命令 描述 示例
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 对所有当前加载的维基执行 getadminsgetbots SWMTBot batchgetusers

安装

[edit | edit source]

SWMTBot 经过测试并积极开发,可在 Mac OS XLinux (Debian) 和 Windows 上运行。该软件在 MIT 许可证 下获得许可。

CVNbot

[edit | edit source]

参见 m:CVN/CVNbot.

另请参见

[edit | edit source]

支持

[edit | edit source]
  • #countervandalism 用于 反破坏网络运营的频道中的 机器人
  • pgkbot
    • pgk— 用于评论、建议和解决机器人脚本故障。
华夏公益教科书