From BITPlan mediawiki-japi Wiki
Revision as of 17:17, 3 November 2020 by Wf (talk | contribs) (→‎WikiPush)
Jump to navigation Jump to search

Click here to comment

What is it

Extended functionality for

  1. pywikibot
  2. mwclient



git clone

wikipush / wikuser script

This script is in the scripts directory. It should be linked with two names

ln wikipush wikiuser

and be added to your path e.g by doing a symbolic link

cd $HOME/bin
ln -s $HOME/Documents/pyworkspace/py-3rdparty-mediawiki/scripts/wikipush .
ln -s $HOME/Documents/pyworkspace/py-3rdparty-mediawiki/scripts/wikiuser .
# WF 2020-10-31
# wrapper for wikipush python
script=$(readlink -nf $BASH_SOURCE)
scriptname=$(basename $script)
scriptdir=$(dirname $script)
case $scriptname in
	python -m wikibot.wikipush "$@"
	python -m wikibot.wikiuser "$@"
	echo "undefined script behavior:  $scriptname"



wikipush -h
family and mylang are not set.
Defaulting to family='test' and mylang='test'.
usage: [-h] [-d] [-V] [-l] [-f] [-i] [-q QUERY] -s SOURCE -t
                   TARGET [-p PAGES [PAGES ...]]

Created on 2020-10-29

  Created by Wolfgang Fahl on 2020-10-31.
  Copyright 2020 Wolfgang Fahl. All rights reserved.

  Licensed under the Apache License 2.0

  Distributed on an "AS IS" basis without warranties
  or conditions of any kind, either express or implied.


optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           set debug level [default: None]
  -V, --version         show program's version number and exit
  -l, --login           login to source wiki for access permission
  -f, --force           force to overwrite existing pages
  -i, --ignore          ignore upload warnings e.g. duplicate images
  -q QUERY, --query QUERY
                        select pages with given SMW ask query
  -s SOURCE, --source SOURCE
                        source wiki id
  -t TARGET, --target TARGET
                        target wiki id
  -p PAGES [PAGES ...], --pages PAGES [PAGES ...]
                        list of page Titles to be pushed



You might want to prepare some credential ini files with the Mediawiki-Japi CommandLine.

pywikibot expects a file. The minimum recommended file for intranet usecases is:

# Slow down the robot such that it never makes a second page edit within
# 'put_throttle' seconds.
put_throttle = 0

The easiest way is to put it at $HOME/.pywikibot/


Encrypted credential handling

Py-3rdparty-mediawiki allows using pywikibot by simply giving each wiki an id and using the credential information created by MediaWiki-Japi. The needed family file is automatically created and registered. If you'd like to get a pure python solution for credential handling please file an issue on github - it's no big deal but i personally don't need it yet since i'm fine with the new CommandLine feature added recently.

Semantic MediaWiki API support



from wikibot.wikibot import WikiBot
wikibot=WikiBot.ofWikiId("test2") ...