User:HuggyBot

From Hanfburgwiki


bender21ib8.jpg

Der HuggyBot nimmt seinem Besitzer triviale Arbeiten ab. Vorerst wird er nur eingesetzt, um von Captchas verkrüppelte Zeichensätze zu reparieren.

Eine Liste der von ihm bearbeiteten Artikel ist hier zu finden.

Quellcode

HuggyBot basiert auf dem pyWikipediaBot Framework, an dem kleine Änderungen vorgenommen wurden.

wikipedia.py

  • Erweiterte Unterstützung des oldid Parameters
  • Veränderter User-Agent (Zur Umgehung der Bot-Aussperrung)
466c466
<     def get(self, force = False, get_redirect=False, throttle = True, sysop = False, nofollow_redirects=False, change_edit_time = True):
---
>     def get(self, force = False, get_redirect=False, throttle = True, sysop = False, nofollow_redirects=False, change_edit_time = True, oldid = None):
519c519
<                 self._contents, self._isWatched, self.editRestriction = self.getEditPage(get_redirect = get_redirect, throttle = throttle, sysop = sysop, nofollow_redirects=nofollow_redirects)
---
>                 self._contents, self._isWatched, self.editRestriction = self.getEditPage(get_redirect = get_redirect, throttle = throttle, sysop = sysop, nofollow_redirects=nofollow_redirects, oldid = oldid)
2355c2355,2356
< setUserAgent('PythonWikipediaBot/1.0')
---
> #setUserAgent('PythonWikipediaBot/1.0')
> setUserAgent('Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/0000000000 BonEcho/2.0.0.2')
4711c4712,4713
<     version="PythonWikipediaBot/1.0"
---
>     #version="PythonWikipediaBot/1.0"
>     version="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/0000000000 BonEcho/2.0.0.2"

families/family.py

# -*- coding: utf-8  -*-
import family
#  Hanfburgwiki
class Family(family.Family):
       def __init__(self):
               family.Family.__init__(self)
               self.name = 'hanfburgwiki'
               self.langs = {
                       'en': None,
               }
               self.namespaces[1] =  { '_default': u'Discussion' }
               self.namespaces[2] =  { '_default': u'User' }
               self.namespaces[3] =  { '_default': u'User Discussion' }
               self.namespaces[4] =  { '_default': u'Hanfburgwiki' }
               self.namespaces[5] =  { '_default': u'Hanfburgwiki Discussion' }
               self.namespaces[6] =  { '_default': u'Image' }
               self.namespaces[7] =  { '_default': u'Image Discussion' }
       def hostname(self,code):
               return 'hanfburgwiki.editthis.info'
       def path(self, code):
               return '/wiki/index.php'
       def code2encodings(self, code):
               return 'utf-8', 'iso8859-1'
       def RversionTab(self, code):
               return r'<li id="ca-history"\\s*><a href=".*?title=.*?&action=history".*?>.*?</a></li>'

user-config.py

family = 'hanfburgwiki'
mylang = 'en'
usernames['hanfburgwiki']['en'] = 'HuggyBot'

iconv.py

Bot-Script zur Zeichensatz-Reparatur.

# -*- coding: utf-8 -*-
"""
Dieser Bot korrigiert von Captchas zerstoerte Zeichensaetze.

Die Captchas kodieren den Text ein zweites Mal nach UTF-8
und verkrueppeln dabei das scharfe s. Der Bot macht dies
rueckgaengig.

Benutzung:

python iconv.py -page:PAGE_NAME [-oldid:OLD_ID]

 PAGE_NAME: Artikel-Titel
 OLD_ID: ID der zu bearbeitenden Version
"""

import wikipedia

for arg in wikipedia.handleArgs():
       if arg.startswith('-page'):
               pageName = arg[6:]
       elif arg.startswith('-oldid'):
               oldId = arg[7:]

if pageName == None:
       pageName = wikipedia.input(u'Page title:')

site = wikipedia.getSite()
page = wikipedia.Page(site, pageName)

text = page.get(get_redirect = True, oldid = oldId)
text = text.replace(u'\\ufffd', u'\\x9f') # fix: scharfes s
newtext = unicode(text.encode('latin-1'), 'utf-8')
page.put(newtext, "Zeichensatz repariert")
wikipedia.stopme()
Personal tools