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