Revision: 6328
Author:   kim
Date:     2009-02-05 22:27:26 +0000 (Thu, 05 Feb 2009)

Log Message:
-----------
Provide a marginally more useful Exception message.
(Message was very misleading. This took me ages to figure out)

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

Modified: trunk/pywikipedia/login.py
===================================================================
--- trunk/pywikipedia/login.py  2009-02-05 22:22:41 UTC (rev 6327)
+++ trunk/pywikipedia/login.py  2009-02-05 22:27:26 UTC (rev 6328)
@@ -64,18 +64,25 @@
 
 
 class LoginManager:
-    def __init__(self, password = None, sysop = False, site = None):
+    def __init__(self, password = None, sysop = False, site = None, 
username=None):
         self.site = site or wikipedia.getSite()
-        if sysop:
-            try:
-                self.username = 
config.sysopnames[self.site.family.name][self.site.lang]
-            except:
-                raise wikipedia.NoUsername(u'ERROR: Sysop username for %s:%s 
is undefined.\nIf you have a sysop account for that site, please add such a 
line to user-config.py:\n\nsysopnames[\'%s\'][\'%s\'] = \'myUsername\'' % 
(self.site.family.name, self.site.lang, self.site.family.name, self.site.lang))
-        else:
-            try:
-                self.username = 
config.usernames[self.site.family.name][self.site.lang]
-            except:
-                raise wikipedia.NoUsername(u'ERROR: Username for %s:%s is 
undefined.\nIf you have an account for that site, please add such a line to 
user-config.py:\n\nusernames[\'%s\'][\'%s\'] = \'myUsername\'' % 
(self.site.family.name, self.site.lang, self.site.family.name, self.site.lang))
+       if username:
+               self.username=username
+               # perform writeback.
+               if site.family.name not in config.usernames:
+                       config.usernames[site.family.name]={}
+               config.usernames[site.family.name][self.site.lang]=username
+       else:
+               if sysop:
+                   try:
+                       self.username = 
config.sysopnames[self.site.family.name][self.site.lang]
+                   except:
+                       raise wikipedia.NoUsername(u'ERROR: Sysop username for 
%s:%s is undefined.\nIf you have a sysop account for that site, please add such 
a line to user-config.py:\n\nsysopnames[\'%s\'][\'%s\'] = \'myUsername\'' % 
(self.site.family.name, self.site.lang, self.site.family.name, self.site.lang))
+               else:
+                   try:
+                       self.username = 
config.usernames[self.site.family.name][self.site.lang]
+                   except:
+                       raise wikipedia.NoUsername(u'ERROR: Username for %s:%s 
is undefined.\nIf you have an account for that site, please add such a line to 
user-config.py:\n\nusernames[\'%s\'][\'%s\'] = \'myUsername\'' % 
(self.site.family.name, self.site.lang, self.site.family.name, self.site.lang))
         self.password = password
         if getattr(config, 'password_file', ''):
             self.readPassword()

Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py      2009-02-05 22:22:41 UTC (rev 6327)
+++ trunk/pywikipedia/wikipedia.py      2009-02-05 22:27:26 UTC (rev 6328)
@@ -809,7 +809,7 @@
             RversionTab = re.compile(r'<li id="ca-history"><a 
href=".*?title=.*?&amp;action=history".*?>.*?</a></li>', re.DOTALL)
         matchVersionTab = RversionTab.search(text)
         if not matchVersionTab:
-            raise NoPage(self.site(), self.aslink(forceInterwiki = True))
+            raise NoPage(self.site(), self.aslink(forceInterwiki = True),"Page 
does not exist. In rare cases, if you are certain the page does exist, look 
into overriding family.RversionTab" )
         # Look if the page is on our watchlist
         matchWatching = Rwatchlist.search(text)
         if matchWatching:



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

Reply via email to