Benutzer:PyBot

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Wechseln zu: Navigation, Suche
Wichtiges

^Willkommen

Dies ist die Haupt-Benutzerseite der Bots von Stargate Wiki. Es gibt momentan fünf Bots, die sich die Arbeiten teilen.

Die Bots sollen hauptsächlich Textersetzungen in Artikeln durchführen. Der Bot kann dabei auf Regular Expressions zurückgreifen. Daher sind auch Aufträge möglich die über einfache "Text1" Arrow-right.png "Text2" Ersetzungen hinausgehen möglich.

Wer Aufträge für die Bots hat, sollte diese bitte auf die Diskussionsseite stellen. Eine Festlegung auf einen bestimmten Bot ist dabei nicht nötig.

Wer auch einen Bot betreiben will, sieht sich unten die Gebrauchsanweisung an und fügt dann auf seiner Benutzerseite optional die Vorlage:Botbabel ein.

^Anzeige von Bot Änderungen

Wer die Änderungen der Bots kontrollieren möchte muss auf der Seite Letzte Änderungen «Bots einblenden» anwählen.

^Bot Quellcode

Den Bot findet man auf dieser Seite. Die jeweils letzte Version des Bots findet man auf Sourceforge. Nach der Installation müssen noch die folgenden Dateien hinzufügt werden.

Pfeil blau.svg user-config.py

Im Stammverzeichnis des Bots muss die Datei user-config.py mit folgendem Inhalt erstellt werden.

Für die Werte XXXX (=Benutzername des Bots im Wiki, zB PyBot) und YYYYY (=Benutzername des Admins im Wiki, zB Rene) müssen natürlich die richtigen Namen angegeben werden. Benutzer die keinen Admin-Account haben, oder den Bot damit nicht betreiben möchten, sollten die entsprechende Zeile komplett löschen.

# -*- coding: utf-8  -*-

# This is an automatically generated file. You can find more configuration parameters in 'config.py' file.

# The family of sites we are working on. wikipedia.py will import
# families/xxx_family.py so if you want to change this variable,
# you need to write such a file.
family = 'stargatewiki'

# The language code of the site we're working on.
mylang = 'de'

# The dictionary usernames should contain a username for each site where you
# have a bot account.
usernames['stargatewiki']['de'] = u'XXXXX'
sysopnames['stargatewiki']['de'] = u'YYYYY'

############## LOGFILE SETTINGS ##############

# Defines for which scripts a logfile should be enabled. Logfiles will be
# saved in the 'logs' subdirectory.
# Example:
#     log = ['interwiki', 'weblinkchecker', 'table2wiki']
# It is also possible to enable logging for all scripts, using this line:
#     log = ['*']
# To disable all logging, use this:
#     log = []
# Per default, logging of interwiki.py is enabled because its logfiles can
# be used to generate so-called warnfiles.
# This setting can be overridden by the -log or -nolog command-line arguments.
log = ['*']


############## INTERWIKI SETTINGS ##############

# Should interwiki.py report warnings for missing links between foreign
# languages?
interwiki_backlink = False

# Should interwiki.py display every new link it discovers?
interwiki_shownew = True

# Should interwiki.py output a graph PNG file on conflicts?
# You need pydot for this: http://dkbza.org/pydot.html
interwiki_graph = False

# Specifies that the robot should process that amount of subjects at a time,
# only starting to load new pages in the original language when the total
# falls below that number. Default is to process (at least) 100 subjects at
# once.
interwiki_min_subjects = 100

# If interwiki graphs are enabled, which format(s) should be used?
# Supported formats include png, jpg, ps, and svg. See:
# http://www.graphviz.org/doc/info/output.html
# If you want to also dump the dot files, you can use this in your
# user-config.py:
# interwiki_graph_formats = ['dot', 'png']
# If you need a PNG image with an HTML image map, use this:
# interwiki_graph_formats = ['png', 'cmap']
# If you only need SVG images, use:
# interwiki_graph_formats = ['svg']
interwiki_graph_formats = ['png']

# You can post the contents of your autonomous_problems.dat to the wiki,
# e.g. to http://de.wikipedia.org/wiki/Wikipedia:Interwiki-Konflikte .
# This allows others to assist you in resolving interwiki problems.
# To help these people, you can upload the interwiki graphs to your
# webspace somewhere. Set the base URL here, e.g.:
# 'http://www.example.org/~yourname/interwiki-graphs/'
interwiki_graph_url = None

# Save file with local articles without interwikis.
without_interwiki = False


############## SOLVE_DISAMBIGUATION SETTINGS ############
#
# Set disambiguation_comment[FAMILY][LANG] to a non-empty string to override
# the default edit comment for the solve_disambiguation bot.
# Use %s to represent the name of the disambiguation page being treated.
# Example:
#
# disambiguation_comment['wikipedia']['en'] = \
#    "Robot-assisted disambiguation ([[WP:DPL|you can help!]]): %s"

sort_ignore_case = False


############## IMAGE RELATED SETTINGS ##############
# If you set this to True, images will be uploaded to Wikimedia
# Commons by default.
upload_to_commons = False


############## TABLE CONVERSION BOT SETTINGS ##############

# will split long paragraphs for better reading the source.
# only table2wiki.py use it by now
splitLongParagraphs = False
# sometimes HTML-tables are indented for better reading.
# That can do very ugly results.
deIndentTables = True
# table2wiki.py works quite stable, so you might switch to True
table2wikiAskOnlyWarnings = True
table2wikiSkipWarnings = False


############## WEBLINK CHECKER SETTINGS ##############

# How many external links should weblinkchecker.py check at the same time?
# If you have a fast connection, you might want to increase this number so
# that slow servers won't slow you down.
max_external_links = 50

report_dead_links_on_talk = False


############## DATABASE SETTINGS ##############
db_hostname = ''
db_username = ''
db_password = ''


############## SEARCH ENGINE SETTINGS ##############

# Some scripts allow querying Google via the Google Web API. To use this feature,
# you must install the pyGoogle module from http://pygoogle.sf.net/ and have a
# Google Web API license key. Note that Google doesn't give out license keys
# anymore.
google_key = ''

# Some scripts allow using the Yahoo! Search Web Services. To use this feature,
# you must install the pYsearch module from http://pysearch.sourceforge.net/
# and get a Yahoo AppID from http://developer.yahoo.com
yahoo_appid = ''

# To use Windows Live Search web service you must get an AppID from
# http://search.msn.com/developer
msn_appid = ''


############## COPYRIGHT SETTINGS ##############

# Enable/disable search engine in copyright.py script
copyright_google = True
copyright_yahoo = True
copyright_msn = False

# Perform a deep check, loading URLs to search if 'Wikipedia' is present.
# This may be useful to improve number of correct results. If you haven't
# a fast connection, you might want to keep they disabled.
copyright_check_in_source_google = False
copyright_check_in_source_yahoo = False
copyright_check_in_source_msn = False

# Web pages may content a Wikipedia text without 'Wikipedia' word but with
# typical '[edit]' tag result of copy & paste procedure. You can want no
# report for this kind of URLs, even if they are copyright violation.
# However, when enabled these URLs are logged in a file.

copyright_check_in_source_section_names = False

# Limit number of queries for page.
copyright_max_query_for_page = 25

# Skip a specified number of queries
copyright_skip_query = 0

# Number of attempts on connection error.
copyright_connection_tries = 10

# Behavior if an exceeded error occur.
#
# Possibilities:
#
#    0 = None
#    1 = Disable search engine
#    2 = Sleep (default)
#    3 = Stop

copyright_exceeded_in_queries = 2
copyright_exceeded_in_queries_sleep_hours = 6

# Append last modified date of URL to script result
copyright_show_date = True

# Append length of URL to script result
copyright_show_length = True

# By default the script try to identify and skip text that contents a wide
# comma separated list or only numbers. But sometimes that might be the
# only part unmodified of a slightly edited and not otherwise reported
# copyright violation. You can disable this feature to try to increase
# number of results.

copyright_economize_query = True


############## FURTHER SETTINGS ##############

# The bot can make some additional changes to each page it edits, e.g. fix
# whitespace or positioning of interwiki and category links.

# This is an experimental feature; handle with care and consider re-checking
# each bot edit if enabling this!
cosmetic_changes = False

# If cosmetic changes are switched on, and you also have several accounts at
# projects where you're not familiar with the local conventions, you probably
# only want the bot to do cosmetic changes on your "home" wiki which you
# specified in config.mylang and config.family.
# If you want the bot to also do cosmetic changes when editing a page on a
# foreign wiki, set cosmetic_changes_mylang_only to False, but be careful!
cosmetic_changes_mylang_only = True

# Use the experimental disk cache to prevent huge memory usage
use_diskcache = False

# Retry loading a page on failure (back off 1 minute, 2 minutes, 4 minutes
# up to 30 minutes)
retry_on_fail = True

# End of configuration section
Pfeil blau.svg stargatewiki_family.py

Im Verzeichnis families muss die Datei stargatewiki_family.py mit folgendem Inhalt erstellt werden (Achtung: nicht Quelltext der Seite, sondern diese Anzeige kopieren!):

# -*- 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 = 'stargatewiki'        # REQUIRED; replace with actual name

        self.langs = {                # REQUIRED
            'de': 'stargate-wiki.de',  # 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 (example):
        self.namespaces[-2]['de'] = u'Medium' # REQUIRED
        self.namespaces[4]['de'] = u'StargateWiki' # REQUIRED
        self.namespaces[5]['de'] = u'StargateWiki Diskussion' # REQUIRED
        self.namespaces[6]['de'] = u'Datei' # REQUIRED
        self.namespaces[7]['de'] = u'Datei Diskussion' # REQUIRED
        self.namespaces[98] = { 
	  '_default': u'Portal',
	  'de': u'Portal' }
        self.namespaces[99] = { 
	  '_default': u'Portal Diskussion',
	  'de': u'Portal Diskussion' }
        self.namespaces[100] = { 
	  '_default': u'Fanprojekt',
	  'de':  u'Fanprojekt' }
        self.namespaces[101] = { 
	  '_default': u'Fanprojekt Diskussion',
	  'de': u'Fanprojekt Diskussion' }
        self.namespaces[102] = { 
	  '_default': u'Merchandise',
	  'de': u'Merchandise' }
        self.namespaces[103] = { 
	  '_default': u'Merchandise Diskussion',
	  'de': u'Merchandise Diskussion' }
        self.namespaces[104] = { 
	  '_default': u'Roman',
	  'de':  u'Roman' }
        self.namespaces[105] = { 
	  '_default': u'Roman Diskussion',
	  'de': u'Roman Diskussion' }
        self.namespaces[106] = { 
	  '_default': u'Stargate Infinity',
	  'de': u'Stargate Infinity' }
        self.namespaces[107] = { 
	  '_default': u'Stargate Infinity Diskussion',
	  'de': u'Stargate Infinity Diskussion' }

        # no translation for command redirect
	# self.redirect['de'] = [u'redirect']
	
        # 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.  Example:
        # self.nocapitalize = ['foo', 'bar']

        # SETTINGS FOR WIKIS THAT USE DISAMBIGUATION PAGES:

        # Disambiguation template names in different languages; each value
        # must be a list, even if there is only one entry.  Example:
        # self.disambiguationTemplates['en'] = ['disambig', 'disambiguation']

        # 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.  Example:
        # self.interwiki_attop = ['de', 'xz']

        # on_one_line is a list of languages that want the interwiki links
        # one-after-another on a single line.  Example:
        # self.interwiki_on_one_line = ['aa', 'cc']

        # 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 '/w'

    # 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? REQUIRED
    def version(self, code):
        # Replace with the actual version being run on your wiki
        return '1.24.1'

    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'