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 <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: jenkins-bot