Revision: 7348 Author: siebrand Date: 2009-10-02 09:33:34 +0000 (Fri, 02 Oct 2009)
Log Message: ----------- handle index error of page.previousRevision() (solves #2848560)
Patch by xqt
Modified Paths: -------------- trunk/pywikipedia/censure.py
Modified: trunk/pywikipedia/censure.py =================================================================== --- trunk/pywikipedia/censure.py 2009-10-02 09:28:38 UTC (rev 7347) +++ trunk/pywikipedia/censure.py 2009-10-02 09:33:34 UTC (rev 7348) @@ -68,22 +68,26 @@ def checkPage(title, onlyLastDiff = False): if title == logPages[site.language() + '.' + site.family.name]: return - wikipedia.output('Checking ' + title + ' for bad word list') + wikipedia.output(u'Checking %s for bad word list' %title) page = wikipedia.Page(site, title) try: text = page.get() if onlyLastDiff: - oldver = page.getOldVersion(page.previousRevision()) + try: + oldver = page.getOldVersion(page.previousRevision()) + except IndexError: + wikipedia.output(u'Page %s has no version history, skipping' %title) + return if len(text) > len(oldver): bpos = seekbpos(oldver, text) epos = seekepos(oldver, text, bpos) diff = text[bpos:epos] text = diff except wikipedia.NoPage: - wikipedia.output('Page ' + title + ' doesn't exist, skipping') + wikipedia.output(u'Page %s doesn't exist, skipping' %title) return except wikipedia.IsRedirectPage: - wikipedia.output('Page ' + title + ' is a redirect, skipping') + wikipedia.output(u'Page %s is a redirect, skipping' %title) return
report = False @@ -98,11 +102,11 @@ log = logPage.get() except: pass - wikipedia.output(title + ' matches the bad word list') + wikipedia.output(u'%s matches the bad word list' %title) log = '* [' + page.permalink()+ ' ' + title + '] - ' + ' '.join(wordsIn) + '\n' + log logPage.put(log, title) else: - wikipedia.output(title + ' doesn't match any of the bad word list') + wikipedia.output(u'%s doesn't match any of the bad word list' %title)
def main(): wikipedia.output('Warning: this script should not be run manually/directly, but automatically by maintainer.py')
pywikipedia-svn@lists.wikimedia.org