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

Reply via email to