Wiki Team/Resources/Bots: Difference between revisions
m Create page |
m moved Walter is a wanker 15/Resources/Bots to Wiki Team/Resources/Bots over redirect: revert |
||
| (3 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
There are a number of Bots written for mediaWiki. The one that I started using was [http://meta.wikimedia.org/wiki/Using_the_python_wikipediabot pywikipedia]. | There are a number of Bots written for mediaWiki. The one that I started using was [http://meta.wikimedia.org/wiki/Using_the_python_wikipediabot pywikipedia]. | ||
The configuration instructions are pretty straight forward. Use the following code segment as user-config.py. Substitute the your own username for 'Dfarning-bot'. | |||
<code><pre> | |||
mylang = 'en' | |||
family = 'sugarlabs' | |||
usernames['sugarlabs']['en'] = u'Dfarning-bot' | |||
sysopnames['sugarlabs']['en'] = u'Dfarning-bot' | |||
</pre></code> | |||
Use the following code segment as sugarlabs_family.py. | |||
<code><pre> | |||
# -*- coding: utf-8 -*- # REQUIRED | |||
import config, family, urllib # REQUIRED | |||
class Family(family.Family): # REQUIRED | |||
def __init__(self): # REQUIRED | |||
family.Family.__init__(self) # REQUIRED | |||
self.name = 'sugarlabs' # REQUIRED; replace with actual name | |||
self.langs = { # REQUIRED | |||
'en': 'www.sugarlabs.org', # Include one line for each wiki in family | |||
} | |||
# Translation used on all wikis for the different namespaces. | |||
# Most namespaces are inherited from family.Family. | |||
# Check the family.py file (in main directory) to see the standard | |||
# namespace translations for each known language. | |||
# You only need to enter translations that differ from the default. | |||
# There are two ways of entering namespace translations. | |||
# 1. If you only need to change the translation of a particular | |||
# namespace for one or two languages, use this format: | |||
self.namespaces[2]['en'] = u'User' | |||
self.namespaces[3]['en'] = u'User talk' | |||
# 2. If you need to change the translation for many languages | |||
# for the same namespace number, use this format (this is common | |||
# for namespaces 4 and 5, because these are usually given a | |||
# unique name for each wiki): | |||
self.namespaces[4] = { | |||
'_default': [u'Sugar Labs', self.namespaces[4]['_default']], # REQUIRED | |||
'de': 'Name des wiki', | |||
'es': 'Nombre del wiki', | |||
'fr': 'Nom du wiki', | |||
# ETC. | |||
} | |||
# Wikimedia wikis all use "bodyContent" as the id of the <div> | |||
# element that contains the actual page content; change this for | |||
# wikis that use something else (e.g., mozilla family) | |||
self.content_id = "bodyContent" | |||
# On most wikis page names must start with a capital letter, but some | |||
# languages don't use this. This should be a list of languages that | |||
# _don't_ require the first letter to be capitalized; e.g., | |||
# self.nocapitalize = ['foo', 'bar'] | |||
self.nocapitalize = [] | |||
# SETTINGS FOR WIKIS THAT USE DISAMBIGUATION PAGES: | |||
# A list of disambiguation template names in different languages | |||
self.disambiguationTemplates = { | |||
'en': ['disambig', 'disambiguation'], | |||
} | |||
# A list with the name of the category containing disambiguation | |||
# pages for the various languages. Only one category per language, | |||
# and without the namespace, so add things like: | |||
self.disambcatname = { | |||
'en': "Disambiguation", | |||
} | |||
# SETTINGS FOR WIKIS THAT USE INTERLANGUAGE LINKS: | |||
# attop is a list of languages that prefer to have the interwiki | |||
# links at the top of the page. | |||
self.interwiki_attop = [] | |||
# on_one_line is a list of languages that want the interwiki links | |||
# one-after-another on a single line | |||
self.interwiki_on_one_line = [] | |||
# String used as separator between interwiki links and the text | |||
self.interwiki_text_separator = '\r\n\r\n' | |||
# Which languages have a special order for putting interlanguage links, | |||
# and what order is it? If a language is not in interwiki_putfirst, | |||
# alphabetical order on language code is used. For languages that are in | |||
# interwiki_putfirst, interwiki_putfirst is checked first, and | |||
# languages are put in the order given there. All other languages are put | |||
# after those, in code-alphabetical order. | |||
self.interwiki_putfirst = {} | |||
# Languages in interwiki_putfirst_doubled should have a number plus a list | |||
# of languages. If there are at least the number of interwiki links, all | |||
# languages in the list should be placed at the front as well as in the | |||
# normal list. | |||
self.interwiki_putfirst_doubled = {} | |||
# Some families, e. g. commons and meta, are not multilingual and | |||
# forward interlanguage links to another family (wikipedia). | |||
# These families can set this variable to the name of the target | |||
# family. | |||
self.interwiki_forward = None | |||
# Which language codes no longer exist and by which language code | |||
# should they be replaced. If for example the language with code xx: | |||
# has been replaced by code yy:, add {'xx':'yy'} to obsolete. | |||
# If all links to language xx: should be removed, add {'xx': None}. | |||
self.obsolete = {} | |||
# SETTINGS FOR CATEGORY LINKS: | |||
# Languages that want the category links at the top of the page | |||
self.category_attop = [] | |||
# languages that want the category links | |||
# one-after-another on a single line | |||
self.category_on_one_line = [] | |||
# String used as separator between category links and the text | |||
self.category_text_separator = '\r\n\r\n' | |||
# When both at the bottom should categories come after interwikilinks? | |||
self.categories_last = [] | |||
# SETTINGS FOR LDAP AUTHENTICATION | |||
# If your wiki uses: | |||
# http://www.mediawiki.org/wiki/Extension:LDAP_Authentication. | |||
# then uncomment this line and define the user's domain required | |||
# at login. | |||
#self.ldapDomain = 'domain here' | |||
def protocol(self, code): | |||
""" | |||
Can be overridden to return 'https'. Other protocols are not supported. | |||
""" | |||
return 'http' | |||
def scriptpath(self, code): | |||
"""The prefix used to locate scripts on this wiki. | |||
This is the value displayed when you enter {{SCRIPTPATH}} on a | |||
wiki page (often displayed at [[Help:Variables]] if the wiki has | |||
copied the master help page correctly). | |||
The default value is the one used on Wikimedia Foundation wikis, | |||
but needs to be overridden in the family file for any wiki that | |||
uses a different value. | |||
""" | |||
return '/wiki' | |||
# IMPORTANT: if your wiki does not support the api.php interface, | |||
# you must uncomment the second line of this method: | |||
def apipath(self, code): | |||
# raise NotImplementedError, "%s wiki family does not support api.php" % self.name | |||
return '%s/api.php' % self.scriptpath(code) | |||
# Which version of MediaWiki is used? | |||
def version(self, code): | |||
# Replace with the actual version being run on your wiki | |||
return '1.13.2' | |||
def code2encoding(self, code): | |||
"""Return the encoding for a specific language wiki""" | |||
# Most wikis nowadays use UTF-8, but change this if yours uses | |||
# a different encoding | |||
return 'utf-8' | |||
</pre></code> | |||