Crates.io | mwbot |
lib.rs | mwbot |
version | 0.7.0 |
created_at | 2021-10-14 04:31:08.177567+00 |
updated_at | 2025-08-29 03:01:56.986042+00 |
description | A MediaWiki bot framework |
homepage | https://www.mediawiki.org/wiki/mwbot-rs |
repository | https://gitlab.wikimedia.org/repos/mwbot-rs/mwbot/ |
max_upload_size | |
id | 464785 |
size | 275,120 |
A MediaWiki bot and tool framework
mwbot
aims to provide a batteries-included framework for building bots
and tools for MediaWiki wikis. It builds on top of the mwapi
and parsoid crates, which offer lower-level APIs.
Create a ~/.config/mwbot.toml
file with the following structure:
wiki_url = "https://en.wikipedia.org/w/"
If want to authenticate, add an auth section:
[auth]
username = "Example"
oauth2_token = "[...]"
See the OAuth documentation for how to get an OAuth 2 token. Using an owner-only consumer is the easiest way to do so.
On UNIX-like systems, for security, you must make sure the config's
file permissions don't permit reading by other users, or authorization
will fail with a [ReadableConfig
][ConfigError::ReadableConfig] error. In this case,
chmod 600 ~/.config/mwbot.toml
can be used to correct the permissions and
make sure the file is only readable and writeable to its owner.
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()
accepts both HTML and wikitext and supports the {{nobots}}
exclusion mechanism, among other features.
Try using one of the offered page generators to fetch and operate on multiple pages.
mwbot
is the flagship crate of the mwbot-rs
project.
We're always looking for new contributors, please reach out
if you're interested!
This crate is released under GPL-3.0-or-later. See COPYING for details.