jenkins-bot has submitted this change and it was merged.

Change subject: Support for fetching page properties
......................................................................


Support for fetching page properties

Added a convenience function for fetching
the defaultsort value.

Change-Id: I0752f1560e0e93cba0e01a9a1ea834e35f8a725c
---
M pywikibot/data/api.py
M pywikibot/page.py
M pywikibot/site.py
3 files changed, 35 insertions(+), 0 deletions(-)

Approvals:
  Merlijn van Deen: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/pywikibot/data/api.py b/pywikibot/data/api.py
index 2b23fb4..17f4db9 100644
--- a/pywikibot/data/api.py
+++ b/pywikibot/data/api.py
@@ -989,6 +989,9 @@
             coords.append(coord)
         page._coords = coords
 
+    if "pageprops" in pagedict:
+        page._pageprops = pagedict['pageprops']
+
 
 if __name__ == "__main__":
     from pywikibot import Site, logging
diff --git a/pywikibot/page.py b/pywikibot/page.py
index 59108e3..4147b4f 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -368,6 +368,24 @@
         if hasattr(self, "_text"):
             del self._text
 
+    def properties(self, force=False):
+        """
+        Returns the various page properties stored for a page
+        @param force: force updating from the live site
+        @return: dict
+        """
+        if not hasattr(self, '_pageprops') or force:
+            self.site.loadpageprops(self)
+        return self._pageprops
+
+    def defaultsort(self, force=False):
+        """
+        Returns the value of {{DEFAULTSORT:}} magic word
+        @param force: force updating from the live site
+        @return: unicode
+        """
+        return self.properties(force=force).get('defaultsort')
+
     def expand_text(self, refresh=False):
         """Return the page text with all templates expanded."""
         if not hasattr(self, "_expanded_text") or (self._expanded_text is 
None) or refresh:
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 1c0b144..5050f78 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -1266,6 +1266,20 @@
                 continue
             api.update_page(page, pageitem)
 
+    def loadpageprops(self, page):
+        title = page.title(withSection=False)
+        query = self._generator(api.PropertyGenerator,
+                                type_arg="pageprops",
+                                titles=title.encode(self.encoding()),
+                                )
+        for pageitem in query:
+            if not self.sametitle(pageitem['title'], title):
+                pywikibot.warning(
+                    u"loadpageprops: Query on %s returned data on '%s'"
+                    % (page, pageitem['title']))
+                continue
+            api.update_page(page, pageitem)
+
     def loadimageinfo(self, page, history=False):
         """Load image info from api and save in page attributes
 

-- 
To view, visit https://gerrit.wikimedia.org/r/82769
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0752f1560e0e93cba0e01a9a1ea834e35f8a725c
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits

Reply via email to