Revision: 7476
Author:   alexsh
Date:     2009-10-16 01:35:28 +0000 (Fri, 16 Oct 2009)

Log Message:
-----------
GetData(): re-organize param process and verbose output

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

Modified: trunk/pywikipedia/query.py
===================================================================
--- trunk/pywikipedia/query.py  2009-10-15 13:43:04 UTC (rev 7475)
+++ trunk/pywikipedia/query.py  2009-10-16 01:35:28 UTC (rev 7476)
@@ -42,57 +42,43 @@
     """
     if not site:
         site = wikipedia.getSite()
-
-    if wikipedia.verbose:
-        wikipedia.output(u"====API PARAMS====")
+    data = {}
+    titlecount = 0
+    
     for k,v in params.iteritems():
         if type(v) == list:
-            params[k] = unicode(ListToParam(v))
+            if k in [u'titles', u'pageids', u'revids', u'ususers'] and len(v) 
> 10:
+                # Titles param might be long, case convert it to post request
+                titlecount = len(params[k])
+                data[k] = unicode(ListToParam(v))
+            else:
+                params[k] = unicode(ListToParam(v))
+            
         elif not IsString(v):
             params[k] = unicode(v)
-        if wikipedia.verbose:
-            if type(v) == list:
-                wikipedia.output(u"[%s]: " % k, newline = False)
-                if len(v) > 10:
-                    wikipedia.output(u"%s (total %d items)" % (v[0:30], 
len(v)) )
-                else:
-                    wikipedia.output(u"%s" % v )
-            elif type(v) not in (int, long):
-                wikipedia.output(u"[%s]: " % k, newline = False)
-                if v.count('|') == 0 and len(v) > 40:
-                    wikipedia.output(u"%s (total %d char)" % (v[0:30], len(v) 
) )
-                elif v.count('|') > 8:
-                    wikipedia.output(u"%s (and more %d values)" % 
(v[0:v.index('|')], len(v.split('|')) ) )
-                else:
-                    wikipedia.output(u"%s" % v )
-            elif k == u'format':
-                continue
-            else:
-                wikipedia.output(u"[%s]: %s" % (k,v) )
-    if wikipedia.verbose:
-        wikipedia.output(u"==================")
-    
+        elif type(v) == unicode:
+            params[k] = ToUtf8(v)
 
-    if 'format' not in params or params['format'] != 'json':
-        params['format'] = 'json'
+    if 'format' not in params or params['format'] != u'json':
+        params['format'] = u'json'
 
     if not useAPI:
         params['noprofile'] = ''
+    
+    if data:
+        del params[data.keys()[0]] 
+    
+    if wikipedia.verbose: #dump params info.
+        wikipedia.output(u"==== API action:%s ====" % params[u'action'])
+        if data:
+            wikipedia.output(u"%s: (%d items)" % (data.keys()[0], titlecount ) 
)
+        
+        for k, v in params.iteritems():
+            if k not in ['action', 'format', 'file', 'xml']:
+                wikipedia.output("%s: %s" % (k, v) )
+        wikipedia.output(u'-' * 16 )
+        
 
-    for k,v in params.iteritems():
-        if type(v) == type(u''):
-            params[k] = ToUtf8(v)
-
-    # Titles param might be long, case convert it to post request
-    data = None
-    titlecount = 0
-    for pLongKey in ['titles', 'pageids', 'ucusers', 'ususers']: #
-        if pLongKey in params:
-            titlecount = params[pLongKey].count('|') + 1
-            if encodeTitle:
-                data = {pLongKey : params[pLongKey]}
-                del params[pLongKey]
-
     postAC = [
         'edit', 'login', 'purge', 'rollback', 'delete', 'undelete', 'protect',
         'block', 'unblock', 'move', 'emailuser','import', 'userrights', 
'upload',



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

Reply via email to