Revision: 3972 Author: wikipedian Date: 2007-08-06 16:13:28 +0000 (Mon, 06 Aug 2007)
Log Message: ----------- fixed docu
Modified Paths: -------------- trunk/pywikipedia/basic.py
Modified: trunk/pywikipedia/basic.py =================================================================== --- trunk/pywikipedia/basic.py 2007-08-06 15:56:08 UTC (rev 3971) +++ trunk/pywikipedia/basic.py 2007-08-06 16:13:28 UTC (rev 3972) @@ -1,30 +1,32 @@ -#!/usr/bin/python +#!/usr/bin/python # -*- coding: utf-8 -*- """ This is not a complete bot; rather, it is a template from which simple -bots can be made. Change workon to edit the contents of a Wikipedia page, -save the result as mybot.py, and then just run: +bots can be made. You can rename it to mybot.py, then edit it in +whatever way you want.
-python mybot.py +The following parameters are supported:
-to have your change be done on all pages of the wiki. If that takes too -long to work in one stroke, run: +¶ms;
-python mybot.py Pagename + -debug If given, doesn't do any real changes, but only shows + what would have been changed.
-to do all pages starting at pagename. - -There is one standard command line option: - --debug: Don't do any changes. +All other parameters will be regarded as part of the title of a single page, +and the bot will only work on that single page. """ __version__ = '$Id$' import wikipedia import pagegenerators import sys
+# This is required for the text that is shown when you run this script +# with the parameter -help. +docuReplacements = { + '¶ms;': pagegenerators.parameterHelp +} + class BasicBot: - # Edit summary message that should be used. # NOTE: Put a good description here, and add translations, if possible! msg = { @@ -37,7 +39,7 @@ Constructor. Parameters: * generator - The page generator that determines on which pages to work on. - * debug - If True, doesn't do any real changes, but only show + * debug - If True, doesn't do any real changes, but only shows what would have been changed. """ self.generator = generator @@ -50,7 +52,11 @@ self.treat(page)
def treat(self, page): + """ + Loads the given page, does some changes, and saves it. + """ try: + # Load the page text = page.get() except wikipedia.NoPage: wikipedia.output(u"Page %s does not exist; skipping." % page.aslink()) @@ -62,15 +68,17 @@ wikipedia.output(u"Page %s is locked; skipping." % page.aslink()) return
- # NOTE: Here you can modify the text in whatever way you want. - # If you find you do not want to edit this page, just return + ################################################################ + # NOTE: Here you can modify the text in whatever way you want. # + ################################################################
- # Example: This puts the text 'Foobar' at the beginning of the page. - text = 'Foobar ' + text + # If you find out that you do not want to edit this page, just return. + # Example: This puts the text 'Test' at the beginning of the page. + text = 'Test ' + text
# only save if something was changed if text != page.get(): - # Show the title of the page where the link was found. + # Show the title of the page we're working on. # Highlight the title in purple. colors = [None] * 6 + [13] * len(page.title()) + [None] * 4 wikipedia.output(u"\n\n>>> %s <<<" % page.title(), colors = colors) @@ -80,11 +88,12 @@ choice = wikipedia.inputChoice(u'Do you want to accept these changes?', ['Yes', 'No'], ['y', 'N'], 'N') if choice == 'y': try: + # Save the page page.put(text) except wikipedia.EditConflict: wikipedia.output(u'Skipping %s because of edit conflict' % (page.title())) - except wikipedia.SpamfilterError, e: - wikipedia.output(u'Cannot change %s because of blacklist entry %s' % (page.title(), e.url)) + except wikipedia.SpamfilterError, error: + wikipedia.output(u'Cannot change %s because of spam blacklist entry %s' % (page.title(), error.url))
def main():
pywikipedia-l@lists.wikimedia.org