User:HuggyBot

From Hanfburgwiki

(Difference between revisions)
Line 1: Line 1:
-
Der huggyBot nimmt seinem [[User:Admin|Besitzer]] triviale Arbeiten ab. Vorerst wird er nur eingesetzt, um von Captchas verkrüppelte Zeichensätze zu reparieren.
+
Der HuggyBot nimmt seinem [[User:Admin|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 [[Special:Contributions/HuggyBot|hier]] zu finden.
== Quellcode ==
== Quellcode ==
-
Der huggyBot basiert auf dem pyWikipediaBot Framework, an dem kleine Änderungen vorgenommen wurden.
+
Der huggyBot basiert auf dem [http://de.wikipedia.org/wiki/Wikipedia:Pywikipediabot pyWikipediaBot] Framework, an dem kleine Änderungen vorgenommen wurden.
=== wikipedia.py ===
=== wikipedia.py ===

Revision as of 13:28, 11 May 2008

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.

Contents

Quellcode

Der 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