http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11323
Revision: 11323
Author: xqt
Date: 2013-04-03 16:18:30 +0000 (Wed, 03 Apr 2013)
Log Message:
-----------
Fix bug #3609816 by setting parameters for wbeditentity to non-plural form,
patch submitted by legoktm
Modified Paths:
--------------
branches/rewrite/pywikibot/page.py
Modified: branches/rewrite/pywikibot/page.py
===================================================================
--- branches/rewrite/pywikibot/page.py 2013-04-01 16:43:54 UTC (rev 11322)
+++ branches/rewrite/pywikibot/page.py 2013-04-03 16:18:30 UTC (rev 11323)
@@ -2199,26 +2199,36 @@
self.repo = self.site.data_repository()
self._isredir = False # Wikibase pages cannot be a redirect
- def __defined_by(self):
+ def __defined_by(self, singular=False):
"""
- returns the parameters needed by the API
- to identify an item.
- Once an item's "p/q##" is looked up, that
- will be used for all future requests.
+ returns the parameters needed by the API to identify an item.
+ Once an item's "p/q##" is looked up, that will be used for all future
+ requests.
+ @param singular: Whether the parameter names should use the singular
+ form
+ @type singular: bool
"""
params = {}
+ if singular:
+ id = 'id'
+ site = 'site'
+ title = 'title'
+ else:
+ id = 'ids'
+ site = 'sites'
+ title = 'titles'
#id overrides all
if hasattr(self, 'id'):
- params['ids'] = self.id
+ params[id] = self.id
return params
#the rest only applies to ItemPages, but is still needed here.
if isinstance(self.site, pywikibot.site.DataSite):
- params['ids'] = self.title(withNamespace=False)
+ params[id] = self.title(withNamespace=False)
elif isinstance(self.site, pywikibot.site.BaseSite):
- params['sites'] = self.site.dbName()
- params['titles'] = self.title()
+ params[site] = self.site.dbName()
+ params[title] = self.title()
else:
raise pywikibot.exceptions.BadTitle
return params
@@ -2326,7 +2336,8 @@
baserevid = self.lastrevid
else:
baserevid = None
- updates = self.repo.editEntity(self.__defined_by(), data,
baserevid=baserevid, **kwargs)
+ updates = self.repo.editEntity(self.__defined_by(singular=True), data,
+ baserevid=baserevid, **kwargs)
self.lastrevid = updates['entity']['lastrevid']
def editLabels(self, labels, **kwargs):
_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn