Skip to content

WolfgangFahl/py-3rdparty-mediawiki

Repository files navigation

py-3rdparty-mediawiki (Wikipush Toolkit)

Join the discussion pypi Github Actions Build GitHub issues GitHub closed issues PyPI Status API Docs License BITPlan

Python wrapper for mwclient with improvements for 3rd party wikis. Also known as the Wikipush Toolkit — a set of tools for automating MediaWiki page content handling using Python and a command line, presented at SMWCon Fall 2020. Works with any MediaWiki wiki: SMW wikis are queried natively; non-SMW wikis are supported by faking SMW-style queries for categories, enabling page pushing from wikis without Semantic MediaWiki installed.

Installation

pip install py-3rdparty-mediawiki

For MCP server support (for AI assistants):

pip install py-3rdparty-mediawiki[mcp]

Examples

wikipush

Copy pages between wikis:

wikipush -s smw -t test2 -q "[[Category:City]]|limit=5"
copying 4 pages from smw to test2
copying Demo:Tokyo ...✅
copying image File:SMW-Info-button.png ...✅
copying image File:Tokyo-Tsukishima-0011.jpg ...✅
copying Vienna ...✅
copying Warsaw ...✅
copying image File:6140285934 02e81b845f z.jpg ...✅
copying Demo:Würzburg ...✅

wikiupload

Upload files to a wiki:

wikiupload -t test --files car.png
uploading 1 files to test
1/1 ( 100%): uploading car.png ...✅

wikinuke

The default behavior is a dry run, listing whether the pages exist:

wikinuke -t test -p deleteMe1 deleteMe2 deleteMe3
deleting 3 pages in test (dry run)
1/3 (  33%): deleting deleteMe1 ...👍
2/3 (  67%): deleting deleteMe2 ...👍
3/3 ( 100%): deleting deleteMe3 ...👍

Use -f to force actual deletion:

wikinuke -t test -p deleteMe1 deleteMe2 deleteMe3 -f
deleting 3 pages in test (forced)
1/3 (  33%): deleting deleteMe1 ...✅
2/3 (  67%): deleting deleteMe2 ...✅
3/3 ( 100%): deleting deleteMe3 ...✅

wikiedit

Search and replace content in wiki pages:

wikiedit -t test -q "[[isA::CFP]]" --search "CALL FOR PAPER" --replace "CFP"
editing 1 pages in test (dry run)
1/1 ( 100%): editing CALL FOR PAPER Journal: Advances in Multimedia ... 👍

wikiuser

Configure wiki credentials interactively:

wikiuser
email: john@doe.com
scriptPath: /w
user: jd
url: http://www.semantic-mediawiki.org
version: Mediawiki 1.33
wikiId: smw
password: ****
shall i store jd smw? yes/no y/n

Links

Documentation

Wiki

About

Wrapper for pywikibot and mwclient MediaWiki API librarties with improvements for 3rd party wikis and mcp-server

Topics

Resources

License

Stars

8 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors