Difference between revisions of "Py-3rdparty-mediawiki"

From BITPlan mediawiki-japi Wiki
Jump to navigation Jump to search
Line 12: Line 12:
 
git clone https://github.com/WolfgangFahl/py-3rdparty-mediawiki
 
git clone https://github.com/WolfgangFahl/py-3rdparty-mediawiki
 
./install
 
./install
 +
</source>
 +
 +
= wikipush / wikuser script =
 +
<source lang='bash'>
 +
#!/bin/bash
 +
# WF 2020-10-31
 +
# wrapper for wikipush python
 +
script=$(readlink -nf $BASH_SOURCE)
 +
scriptname=$(basename $script)
 +
scriptdir=$(dirname $script)
 +
base=$scriptdir/..
 +
export PYTHONPATH="${PYTHONPATH}:$base"
 +
case $scriptname in
 +
  "wikipush")
 +
python -m wikibot.wikipush "$@"
 +
;;
 +
  "wikiuser")
 +
python -m wikibot.wikiuser "$@"
 +
;;
 +
  *)
 +
echo "undefined script behavior:  $scriptname"
 +
;;
 +
esac
 
</source>
 
</source>
  
 
= WikiPush =
 
= WikiPush =
 +
= WikiUser =
 +
 
= Prerequisites =
 
= Prerequisites =
 
You might want to prepare some credential ini files with the Mediawiki-Japi [[CommandLine]].
 
You might want to prepare some credential ini files with the Mediawiki-Japi [[CommandLine]].

Revision as of 16:12, 3 November 2020

Click here to comment

What is it

Extended functionality for

  1. pywikibot
  2. mwclient

Github

Installation

git clone https://github.com/WolfgangFahl/py-3rdparty-mediawiki
./install

wikipush / wikuser script

#!/bin/bash
# WF 2020-10-31
# wrapper for wikipush python
script=$(readlink -nf $BASH_SOURCE)
scriptname=$(basename $script)
scriptdir=$(dirname $script)
base=$scriptdir/..
export PYTHONPATH="${PYTHONPATH}:$base"
case $scriptname in
   "wikipush")
	python -m wikibot.wikipush "$@"
	;;
   "wikiuser")
	python -m wikibot.wikiuser "$@"
	;;
   *)
	echo "undefined script behavior:  $scriptname"
	;;
esac

WikiPush

WikiUser

Prerequisites

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

user-config.py

pywikibot expects a user-config.py file. The minimum recommended file for intranet usecases is:

# https://stackoverflow.com/a/60885381/1497139
# 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/user-config.py

Features

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

see https://github.com/WolfgangFahl/py-3rdparty-mediawiki/issues/1

Example

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