[Pywikipedia-l] SVN: [4875] trunk/pywikipedia/wikipedia.py
rotem at svn.wikimedia.org
rotem at svn.wikimedia.org
Sun Jan 13 18:21:46 UTC 2008
Revision: 4875
Author: rotem
Date: 2008-01-13 18:21:45 +0000 (Sun, 13 Jan 2008)
Log Message:
-----------
(bug 1869983) Catch ServerError exceptions in Page.put.
Modified Paths:
--------------
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2008-01-13 18:15:26 UTC (rev 4874)
+++ trunk/pywikipedia/wikipedia.py 2008-01-13 18:21:45 UTC (rev 4875)
@@ -1270,6 +1270,14 @@
response, data = self.site().postForm(address, predata, sysop)
except httplib.BadStatusLine, line:
raise PageNotSaved('Bad status line: %s' % line.line)
+ except ServerError:
+ output(u''.join(traceback.format_exception(*sys.exc_info())))
+ output(u'Got a server error when putting; will retry in %i minutes.' % retry_delay)
+ time.sleep(60 * retry_delay)
+ retry_delay *= 2
+ if retry_delay > 30:
+ retry_delay = 30
+ continue
if data != u'':
# Saving unsuccessful. Possible reasons:
# server lag, edit conflict or invalid edit token.
More information about the Pywikipedia-l
mailing list