http://www.mediawiki.org/wiki/Special:Code/pywikipedia/10615
Revision: 10615
Author: amir
Date: 2012-10-25 22:02:28 +0000 (Thu, 25 Oct 2012)
Log Message:
-----------
page.get() now is working on wikidata. you can give title "Helium" not
"Q321"
Modified Paths:
--------------
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2012-10-25 16:19:34 UTC (rev 10614)
+++ trunk/pywikipedia/wikipedia.py 2012-10-25 22:02:28 UTC (rev 10615)
@@ -752,6 +752,14 @@
'inprop': ['protection', 'subjectid'],
#'intoken': 'edit',
}
+ params1=params.copy()
+ if self.site().lang==u"wikidata":
+ params['action']='wbgetentities'
+ params['sites']='enwiki'
+ del params['prop']
+ del params['rvprop']
+ del params['rvlimit']
+ del params['inprop']
if oldid:
params['rvstartid'] = oldid
if expandtemplates:
@@ -762,6 +770,14 @@
textareaFound = False
# retrying loop is done by query.GetData
data = query.GetData(params, self.site(), sysop=sysop)
+ if self.site().lang==u"wikidata":
+ data['query']={'pages':data['entities']}
+ for pageid in data['entities'].keys():
+ if pageid=="-1":
+ continue #Means the page does not exist
+ params1['titles']="Q"+pageid
+ ndata=query.GetData(params1, self.site(),
sysop=sysop)['query']['pages']
+ data['query']['pages'].update(ndata)
if 'error' in data:
raise RuntimeError("API query error: %s" % data)
if not 'pages' in data['query']: