Revision: 8305
Author: cydeweys
Date: 2010-06-16 17:55:23 +0000 (Wed, 16 Jun 2010)
Log Message:
-----------
Handle expired token errors directly in query.py by re-getting the token. This fixes an
error where long runs involving admin actions were being aborted because of lost tokens.
Modified Paths:
--------------
trunk/pywikipedia/query.py
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/query.py
===================================================================
--- trunk/pywikipedia/query.py 2010-06-16 17:54:08 UTC (rev 8304)
+++ trunk/pywikipedia/query.py 2010-06-16 17:55:23 UTC (rev 8305)
@@ -130,6 +130,13 @@
# decodedObj = eval( jsontext )
jsontext = json.loads( jsontext )
+
+ if "error" in jsontext:
+ errorDetails = jsontext["error"]
+ if errorDetails["code"] == 'badtoken':
+ wikipedia.output('Received a bad login token error from the
server. Attempting to refresh.')
+ params['token'] = site.getToken(sysop = sysop, getagain =
True)
+ continue
if back_response:
return res, jsontext
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2010-06-16 17:54:08 UTC (rev 8304)
+++ trunk/pywikipedia/wikipedia.py 2010-06-16 17:55:23 UTC (rev 8305)
@@ -2580,7 +2580,14 @@
if 'comment' in r:
c = r['comment']
#revision id, edit date/time, user name, edit summary
- dataQ.append((r['revid'], r['timestamp'],
r['user'], c))
+ (revidStrr, timestampStrr, userStrr) = (None, None, None)
+ if 'revid' in r:
+ revidStrr = r['revid']
+ if 'timestamp' in r:
+ timestampStrr = r['timestamp']
+ if 'user' in r:
+ userStrr = r['user']
+ dataQ.append((revidStrr, timestampStrr, userStrr, c))
if
len(result['query']['pages'].values()[0]['revisions']) <
revCount:
thisHistoryDone = True
Show replies by date