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']: