From a1a2ced4a128d67be16ea064c96253be3bc0c213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Michael=20O=2E=20Hegg=C3=B8?= <danmichaelo@gmail.com> Date: Sat, 28 Jul 2012 00:22:54 +0200 Subject: [PATCH] [gist 2983401] Support for getting pages by pageid as well, not just pagename --- listing.py | 14 +++++++------- page.py | 8 ++++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/listing.py b/listing.py index 363f8d7..98dc32e 100644 --- a/listing.py +++ b/listing.py @@ -163,13 +163,13 @@ class PageList(GeneratorList): return page.Page(self.site, self.site.namespaces[self.namespace] + ':' + name, info) else: # Guessing page class - namespace = self.guess_namespace(name) - if namespace == 14: - return Category(self.site, name, info) - elif namespace == 6: - return page.Image(self.site, name, info) - else: - return page.Page(self.site, name, info) + if type(name) is not int: + namespace = self.guess_namespace(name) + if namespace == 14: + return Category(self.site, name, info) + elif namespace == 6: + return page.Image(self.site, name, info) + return page.Page(self.site, name, info) def guess_namespace(self, name): normal_name = page.Page.normalize_title(name) diff --git a/page.py b/page.py index 5e0c2ac..9031fcd 100644 --- a/page.py +++ b/page.py @@ -21,8 +21,12 @@ class Page(object): prop = 'info' extra_props = () - info = self.site.api('query', prop = prop, titles = name, - inprop = 'protection', *extra_props) + if type(name) is int: + info = self.site.api('query', prop = prop, pageids = name, + inprop = 'protection', *extra_props) + else: + info = self.site.api('query', prop = prop, titles = name, + inprop = 'protection', *extra_props) info = info['query']['pages'].itervalues().next() self._info = info -- GitLab