Revision: 7127
Author:   alexsh
Date:     2009-08-07 13:33:41 +0000 (Fri, 07 Aug 2009)

Log Message:
-----------
* Site().solveCaptcha(): Fix dict key wrong for error code.
* Site()._getUserData() API mode:Fix get anonymous key normally, base on 
ordinary mode.

Modified Paths:
--------------
    trunk/pywikipedia/wikipedia.py

Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py      2009-08-07 09:34:48 UTC (rev 7126)
+++ trunk/pywikipedia/wikipedia.py      2009-08-07 13:33:41 UTC (rev 7127)
@@ -4490,6 +4490,7 @@
         """Log the user in if not already logged in."""
         if not self.loggedInAs(sysop = sysop):
             loginMan = login.LoginManager(site = self, sysop = sysop)
+            #loginMan.logout()
             if loginMan.login(retry = True):
                 index = self._userIndex(sysop)
                 self._isLoggedIn[index] = True
@@ -4623,9 +4624,9 @@
 
     def solveCaptcha(self, data):
         if type(data) == dict: # API Mode result
-            if data['result'].has_key("captcha"):
-                captype = data['result']['captcha']['type']
-                id = data['result']['captcha']['id']
+            if data.has_key("captcha"):
+                captype = data['captcha']['type']
+                id = data['captcha']['id']
                 if captype in ['simple', 'math', 'question']:
                     answer = input('What is the answer to the captcha "%s" ?' 
% data['result']['captcha']['question'])
                 elif captype == 'image':
@@ -4969,15 +4970,14 @@
             self._rights[index] = list(set(self._rights[index]))
 
             # Get token
-            if text.has_key('preferencestoken') and 
len(text['preferencestoken']) > 2:
-                # anonymous token is '+\\', check len('+\\') = 2
-                # if preferencestoken > 2, it must be loggedin.
+            if text.has_key('preferencestoken'):
                 self._token[index] = text['preferencestoken']
                 if self._rights[index] is not None:
                     # Token and rights are loaded - user data is now loaded
                     self._userData[index] = True
             else:
-                output(u'WARNING: Token not found on %s. You will not be able 
to edit any page.' % self)
+                if not self._isBlocked[index]:
+                    output(u'WARNING: Token not found on %s. You will not be 
able to edit any page.' % self)
         else:
             #ordinary mode to get data from edit page HTMLs and JavaScripts
             
@@ -5209,6 +5209,7 @@
 
     def has_mediawiki_message(self, key):
         """Return True iff this site defines a MediaWiki message for 'key'."""
+        #return self._mediawiki_messages.has_key(key)
         try:
             v = self.mediawiki_message(key)
             return True



_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to