32 个版本

0.7.0-rc.22024 年 6 月 13 日
0.6.1 2024 年 1 月 7 日
0.6.0 2023 年 12 月 15 日
0.6.0-rc.12023 年 11 月 2 日
0.3.2 2021 年 11 月 22 日

#199 in 网络编程

Download history 10/week @ 2024-05-16 25/week @ 2024-05-23 13/week @ 2024-05-30 327/week @ 2024-06-06 231/week @ 2024-06-13 126/week @ 2024-06-20 80/week @ 2024-06-27 121/week @ 2024-07-04 84/week @ 2024-07-11 88/week @ 2024-07-18 97/week @ 2024-07-25 85/week @ 2024-08-01 79/week @ 2024-08-08 67/week @ 2024-08-15

每月 339 次下载

GPL-3.0-or-later

540KB
10K SLoC

mwbot

crates.io docs.rs docs (main) pipeline status coverage report

MediaWiki 框架

mwbot旨在为构建MediaWiki维基百科的机器人工具提供一个完整的框架。它基于mwapiparsoid,它们提供更底层的API。

快速入门

配置

创建一个具有以下结构的~/.config/mwbot.toml文件

wiki_url = "https://en.wikipedia.org/w/"

如果需要认证,请添加一个认证部分

[auth]
username = "Example"
oauth2_token = "[...]"

有关如何获取OAuth 2令牌的说明,请参阅OAuth文档。使用所有者专属消费者是最简单的方法。

阅读页面

let bot = mwbot::Bot::from_default_config().await.unwrap();
let page = bot.page("Rust (programming language)")?;
let html = page.html().await?.into_mutable();
// The lead section is the second p tag in the first section
let lead = html.select("section > p")[1].text_contents();
assert!(lead.starts_with("Rust is a multi-paradigm, general-purpose programming language"));

使用Bot::from_default_config()将首先在当前目录中查找mwbot.toml,然后再查找用户的配置目录。可以通过使用Bot::from_config(...)指定自定义路径。

编辑页面

let bot = mwbot::Bot::from_default_config().await.unwrap();
let page = bot.page("Project:Sandbox")?;
let wikitext = "This is a test edit!";
page.save(wikitext, &SaveOptions::summary("test edit!")).await?;

Page.save()接受HTML和维基文本,并支持{{nobots}}排除机制,以及其他功能。

下一步

尝试使用提供的页面生成器来获取并操作多个页面。

贡献

mwbotmwbot-rs项目的旗舰软件包。我们一直在寻找新的贡献者,如果您对此感兴趣,请联系我们

许可证

本软件包在GPL-3.0-or-later许可证下发布。有关详细信息,请参阅COPYING

依赖关系

~15–28MB
~431K SLoC