http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11232
Revision: 11232 Author: legoktm Date: 2013-03-21 07:27:18 +0000 (Thu, 21 Mar 2013) Log Message: ----------- Minor fixes with id's and NoPage errors
Modified Paths: -------------- branches/rewrite/pywikibot/page.py
Modified: branches/rewrite/pywikibot/page.py =================================================================== --- branches/rewrite/pywikibot/page.py 2013-03-20 16:37:45 UTC (rev 11231) +++ branches/rewrite/pywikibot/page.py 2013-03-21 07:27:18 UTC (rev 11232) @@ -2194,7 +2194,7 @@ Page.__init__(self, site, title) if isinstance(self.site, pywikibot.site.DataSite): self.repo = self.site - self.id = title.lower() + self.id = self.title(withNamespace=False).lower() else: self.repo = self.site.data_repository()
@@ -2222,6 +2222,16 @@ raise pywikibot.exceptions.BadTitle return params
+ def exists(self): + if not hasattr(self, '_content'): + try: + self.get() + return True + except pywikibot.NoPage: + return False + return 'lastrevid' in self._content + + def get(self, force=False, *args): """ Fetches all page data, and caches it @@ -2232,10 +2242,10 @@ data = self.repo.loadcontent(self.__defined_by(), *args) self.id = data.keys()[0] self._content = data[self.id] - if 'lastrevid' in self._content: - self.lastrevid = self._content['lastrevid'] - else: - raise pywikibot.NoPage + if 'lastrevid' in self._content: + self.lastrevid = self._content['lastrevid'] + else: + raise pywikibot.NoPage(self) #aliases self.aliases = {} if 'aliases' in self._content: @@ -2424,7 +2434,7 @@ self.get(force=force) dbname = self.__getdbName(site) if not dbname in self.sitelinks: - raise pywikibot.NoPage + raise pywikibot.NoPage(self) else: return self.sitelinks[dbname]
pywikipedia-svn@lists.wikimedia.org