Pywikibot/Installing
From charlesreid1
Contents
Installing Pywikibot
I have the pywikibot software set up with two remotes: one official (Wikimedia gerrit), and one unofficial (my own git repo).
Link to pywikibot on Wikimedia Foundation's gerrit: https://gerrit.wikimedia.org/r/pywikibot/core.git
Link to pywikibot on git.charlesreid1.com: https://git.charlesreid1.com/wiki/pywikibot
Wikimedia gerrit
Note the official pywikibot repo is also cloned on Github: https://github.com/wikimedia/pywikibot-core/
Start by checking it out:
$ git clone https://gerrit.wikimedia.org/r/pywikibot/core.git pywikibot $ cd pywikibot
Install all the pip stuff that you may need:
$ pip install -r requirements.txt
Update git submodules:
$ git submodule update --init
Set up a family file
Before logging into a new wiki family, you need to create a family file for that wiki "family".
Use the generate_family_file.py
script to do that:
$ python generate_family_file.py <url-of-wiki> <wiki-shortname>
For example,
$ python generate_family_file.py https://charlesreid1.com/wiki/Main_Page charlesreid1
This will generate a family file at pywikibot/families/charlesreid1_family.py
with the contents:
# -*- coding: utf-8 -*- """ This family file was auto-generated by generate_family_file.py script. Configuration parameters: url = https://charlesreid1.com/wiki/Main_Page name = charlesreid1 Please do not commit this to the Git repository! """ from __future__ import absolute_import, division, unicode_literals from pywikibot import family from pywikibot.tools import deprecated class Family(family.Family): # noqa: D101 name = 'charlesreid1' langs = { 'en': 'charlesreid1.com', } def scriptpath(self, code): return { 'en': '/w', }[code] @deprecated('APISite.version()') def version(self, code): return { 'en': '1.30.0', }[code] def protocol(self, code): return { 'en': 'https', }[code]
NOTE: The family file name MUST end with _family
or it will not get picked up by the login script.
The first time you run the login action script, you will be asked to set up some details about the wiki family that you have selected:
$ py pwb.py login NOTE: 'user-config.py' was not found! Please follow the prompts to create it: You can abort at any time by pressing ctrl-c Your default user directory is "/home/charles/codes/wiki/pywikibot" 1: charlesreid1 2: commons 3: i18n 4: incubator ... Select family of sites we are working on, just enter the number or name (default: wikipedia): 1 The only known language: en The language code of the site we're working on (default: en): en Username on en:charlesreid1: Admin Do you want to add any other projects? ([y]es, [N]o): n '/home/charles/codes/wiki/pywikibot/user-config.py' written. Now, you have to re-execute the command to start your script.
Now run the login action script again, and you should be able to log into the wiki as your bot:
$ python pwb.py login Password for user Bleep bloop on charlesreid1:en (no characters will be shown): Logging in to charlesreid1:en as Bleep bloop WARNING: /Users/charles/codes/pywikibot/pywikibot/tools/__init__.py:1717: UserWarning: File /Users/charles/codes/pywikibot/pywikibot.lwp had 644 mode; converted to 600 mode. Logged in on charlesreid1:en as Bleep bloop.
git.charlesreid1.com
Link to pywikibot on git.charlesreid1.com: https://git.charlesreid1.com/wiki/pywikibot
To push changes to the pywikibot on git.charlesreid1.com I set up the repo with another remote:
$ git remote add cmr https://git.charlesreid1.com/wiki/pywikibot $ git push cmr master