Revision: 4382 Author: btongminh Date: 2007-09-29 10:49:55 +0000 (Sat, 29 Sep 2007)
Log Message: ----------- Proper exception handling, threadsafety, forceLogin
Modified Paths: -------------- trunk/pywikipedia/image_replacer.py
Modified: trunk/pywikipedia/image_replacer.py =================================================================== --- trunk/pywikipedia/image_replacer.py 2007-09-29 10:43:01 UTC (rev 4381) +++ trunk/pywikipedia/image_replacer.py 2007-09-29 10:49:55 UTC (rev 4382) @@ -47,6 +47,7 @@ for i in self.config.get('disallowed_replacements', ())] self.site = wikipedia.getSite(persistent_http = True) + self.site.forceLogin() self.database = connect_database() self.cursor = self.database.cursor() @@ -197,7 +198,8 @@
class Reporter(threadpool.Thread): def __init__(self, pool, site, config): - self.site = site + self.site = wikipedia.Site(site.lang, site.family, + site.user, True) self.config = config threadpool.Thread.__init__(self, pool) @@ -259,13 +261,15 @@ output(u'Running ' + __version__)
try: - # FIXME: Add support for single-process replacer. - r = Replacer() - output(u'This bot runs from: ' + str(r.site)) - r.start() - except Exception, e: - if type(e) not in (SystemExit, KeyboardInterrupt): - output('A critical error has occured! Aborting!') - traceback.print_exc(file = sys.stderr) - r.reporters.exit() - wikipedia.stopme() \ No newline at end of file + try: + # FIXME: Add support for single-process replacer. + r = Replacer() + output(u'This bot runs from: ' + str(r.site)) + r.start() + except Exception, e: + if type(e) not in (SystemExit, KeyboardInterrupt): + output('A critical error has occured! Aborting!') + traceback.print_exc(file = sys.stderr) + finally: + r.reporters.exit() + wikipedia.stopme() \ No newline at end of file