EarwigBot 是一个编辑维基百科并在IRC上进行交互的机器人
项目描述
EarwigBot 是一个 Python 机器人,它可以编辑 维基百科 并在 IRC 上进行交互。此 README 提供了如何安装和设置机器人的基本概述;更详细的信息位于 docs/ 目录中(可在网上找到)。
历史
开发始于2009年初,基于Pywikibot。其首个任务——一个版权侵权检测器——于5月份获得批准,自此该机器人一直在稳定运行。目前,它处理从统计生成到分类清理的多个持续任务,以及按需任务,如WikiProject模板标记。自运行以来,该机器人已进行了超过30万次编辑。
其代码库的当前版本始于2011年4月,从Pywikibot迁移到一个自定义框架。
安装
此软件包包含核心earwigbot,抽象化以使任何在MediaWiki网站上运行机器人的人都可以使用和自定义。由于其模块化,如果需要,可以禁用IRC组件。特定于我的EarwigBot实例的IRC命令和机器人任务,这些命令我认为普通用户不需要,可以从earwigbot-plugins存储库中获得。
最新版本
EarwigBot可在Python包索引中找到,因此您可以使用以下命令安装最新版本
pip install earwigbot
有一些可选的依赖项集
crypto:允许在配置中加密机器人密码和机密
sql:允许与MediaWiki数据库(例如在Toolforge)交互
copyvios:包括检查版权侵权的解析库
dev:安装开发依赖项(例如测试运行器)
例如,要安装所有非开发依赖项
pip install ‘earwigbot[crypto,sql,copyvios]’
在pip安装依赖项时可能出现的错误可能是缺少头文件。例如,在Ubuntu上,请参阅这篇StackOverflow帖子。
开发版本
您可以安装机器人的开发版本
git clone https://github.com/earwig/earwigbot.git cd earwigbot python3 -m venv venv . venv/bin/activate pip install -e '.[crypto,sql,copyvios,dev]'
要运行机器人的单元测试,请运行pytest(需要开发依赖项)。覆盖率目前尚不完整。
设置
机器人将其数据存储在“工作目录”中,包括其配置文件和数据库。这也是您将放置自定义IRC命令和机器人任务的位置,这些将在稍后解释。只要机器人可以写入它,这个目录在哪里都无关紧要。
使用earwigbot path/to/working/dir启动机器人,或者如果工作目录是当前目录,则只需earwigbot。它将注意到不存在config.yml文件,并引导您通过设置过程。
在创建后,目前无法在机器人内部编辑config.yml文件,但您应该能够自己做出任何必要的更改。
设置后,机器人将启动。这意味着它将连接到其配置的IRC服务器,安排在特定时间运行机器人任务,然后等待指令(作为IRC上的命令)。有关命令列表,请说“!help”(命令是前面带有感叹号的短信)。
您可以使用Control+C在任何时候停止机器人,就像停止常规Python程序一样,它会尝试安全退出。您还可以在IRC上使用“!quit”命令。
自定义
机器人的工作目录包含一个commands子目录和一个tasks子目录。自定义IRC命令可以放在前者,而自定义的wiki机器人任务则放在后者。下面将解释如何开发自定义模块,更详细的内容可以通过机器人的文档或docs/目录中的信息来了解。
请注意,自定义命令将覆盖同名内置命令和任务。
Bot 和 BotConfig
earwigbot.bot.Bot 是 EarwigBot 的主要类。您不需要自己实例化它,但了解其属性和方法是很好的,因为这是与其他机器人部分通信的主要方式。一个 Bot 对象可以通过命令和任务(即 self.bot)访问。
earwigbot.config.BotConfig 存储机器人的配置信息。它的文档字符串解释了每个属性的作用,但基本上每个“节点”(即 config.components、wiki、irc、commands、tasks 和 metadata)映射到机器人 config.yml 文件的一个部分。例如,如果 config.yml 包含以下内容
irc: frontend: nick: MyAwesomeBot channels: - "##earwigbot" - "#channel" - "#other-channel"
那么 config.irc["frontend"]["nick"] 将是 "MyAwesomeBot",而 config.irc["frontend"]["channels"] 将是 ["##earwigbot", "#channel", "#other-channel"]。
自定义IRC命令
自定义命令是 earwigbot.commands.Command 的子类,它覆盖了 Command 的 process()(以及可选的 check()、setup() 或 unload())方法。
机器人有多种内置命令和插件,可以作为示例代码,也可以提供一些灵感。从 test 开始,然后查看 chanops 和 afc_status 以获取一些更复杂的脚本。
自定义机器人任务
自定义任务是 earwigbot.tasks.Task 的子类,它覆盖了 Task 的 run()(以及可选的 setup() 或 unload())方法。
查看内置的 wikiproject_tagger 任务以了解相对简单的工作,或者查看 afc_statistics 插件以了解更复杂的工作。
Wiki工具集
EarwigBot 对应于 Pywikibot 的是 Wiki工具集(earwigbot.wiki),您将通过 bot.wiki 主要访问它。
bot.wiki 提供了三个用于管理站点的功能:get_site()、add_site() 和 remove_site()。站点是表示 MediaWiki 站点的对象。单个 EarwigBot 实例(即单个 工作目录)通常与单个站点或使用相同登录信息(如所有 WMF wiki 使用 CentralAuth)的多个站点相关联。
使用 site = bot.wiki.get_site() 加载您的默认站点(在设置期间选择的站点)。
本文档并未涵盖工具集的所有方面。通过探索其代码和文档字符串来了解如何更实际地使用它。作为参考,bot.wiki是绑定到bot工作目录中的sites.db文件的earwigbot.wiki.SitesDB实例。
项目详情
下载文件
下载适用于您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分布
构建版本
earwigbot-0.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a7fff9066ef80a7199063e2bd3693c3ae688dc3f48e13eac0fe4c8d183ace456 |
|
MD5 | 5c8d4704d074ec6289d17f659e9144d6 |
|
BLAKE2b-256 | ef1a5758c3b68c022d52afd2669ab5109d7c5c6e0e27622b4857bc1ad49bd38f |
earwigbot-0.4-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cca2a851a16dc0df966ad4da3a68d4fc4fdae07630bb87ab6bfb13c9a8748d5d |
|
MD5 | f501ebba241190c8f6dd5d1888c8e6df |
|
BLAKE2b-256 | 3f09a76fe9aaa16e97eca0958c6a1db4644d142f3ab84adb50ffa2877496b9a4 |