http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11201
Revision: 11201 Author: legoktm Date: 2013-03-09 16:37:12 +0000 (Sat, 09 Mar 2013) Log Message: ----------- Move API call in WikibasePage.get to DataSite.loadcontent since API calls should be in site per comments on r11182.
Modified Paths: -------------- branches/rewrite/pywikibot/page.py branches/rewrite/pywikibot/site.py
Modified: branches/rewrite/pywikibot/page.py =================================================================== --- branches/rewrite/pywikibot/page.py 2013-03-09 11:43:52 UTC (rev 11200) +++ branches/rewrite/pywikibot/page.py 2013-03-09 16:37:12 UTC (rev 11201) @@ -2227,17 +2227,9 @@ args can be used to specify custom props. """ if force or not hasattr(self, '_content'): - params = dict(**self.__defined_by()) - params['action'] = 'wbgetentities' - if args: - params['props'] = '|'.join(args) - #print params - req = pywikibot.data.api.Request(site=self.repo, **params) - data = req.submit() - if not 'success' in data: - raise pywikibot.data.api.APIError, data['errors'] - self.id = data['entities'].keys()[0] - self._content = data['entities'][self.id] + data = self.repo.loadcontent(self.__defined_by(), *args) + self.id = data.keys()[0] + self._content = data[self.id] self.lastrevid = self._content['lastrevid'] #aliases self.aliases = {}
Modified: branches/rewrite/pywikibot/site.py =================================================================== --- branches/rewrite/pywikibot/site.py 2013-03-09 11:43:52 UTC (rev 11200) +++ branches/rewrite/pywikibot/site.py 2013-03-09 16:37:12 UTC (rev 11201) @@ -3312,6 +3312,27 @@ # not implemented yet raise NotImplementedError
+ def loadcontent(self, identification, *props): + """ + This is called loadcontent since + wbgetentities does not support fetching old + revisions. Eventually this will get replaced by + an actual loadrevisions. + @param identification Parameters used to identify the page(s) + @type identification dict + @param props the optional properties to fetch. + """ + params = dict(**identification) + params['action'] = 'wbgetentities' + if props: + params['props'] = '|'.join(props) + req = api.Request(site=self, **params) + data = req.submit() + if not 'success' in data: + raise pywikibot.data.api.APIError, data['errors'] + return data['entities'] + + # deprecated BaseSite methods def fam(self): raise NotImplementedError
pywikipedia-svn@lists.wikimedia.org