Revision: 8579
Author: xqt
Date: 2010-09-19 20:40:20 +0000 (Sun, 19 Sep 2010)
Log Message:
-----------
new method Page.isStaticRedirect() from trunk
Modified Paths:
--------------
branches/rewrite/pywikibot/page.py
Modified: branches/rewrite/pywikibot/page.py
===================================================================
--- branches/rewrite/pywikibot/page.py 2010-09-19 20:06:43 UTC (rev 8578)
+++ branches/rewrite/pywikibot/page.py 2010-09-19 20:40:20 UTC (rev 8579)
@@ -358,15 +358,21 @@
return result["expandtemplates"]["*"]
def userName(self):
- """Return name or IP address of last user to edit page."""
+ """Return name or IP address of last user to edit page.
+
+ """
return self._revisions[self.latestRevision()].user
def isIpEdit(self):
- """Return True if last editor was unregistered."""
+ """Return True if last editor was unregistered.
+
+ """
return self._revisions[self.latestRevision()].anon
def editTime(self):
- """Return timestamp (in ISO 8601 format) of last revision to page."""
+ """Return timestamp (in ISO 8601 format) of last revision to page.
+
+ """
return self._revisions[self.latestRevision()].timestamp
def previousRevision(self):
@@ -388,6 +394,22 @@
"""Return True if this is a redirect, False if not or not existing."""
return self.site.page_isredirect(self)
+ def isStaticRedirect(self, force=False):
+ """Return True if this is a redirect containing the magic word
+ __STATICREDIRECT__, False if not or not existing.
+
+ """
+ found = False
+ if self.isRedirectPage():
+ staticKeys = self.site.getmagicwords('staticredirect')
+ text = self.get(get_redirect=True, force=force)
+ if staticKeys:
+ for key in staticKeys:
+ if key in text:
+ found = True
+ break
+ return found
+
def isCategoryRedirect(self):
"""Return True if this is a category redirect page, False otherwise."""
@@ -493,8 +515,8 @@
"MediaWiki:Disambiguationspage")
self.site._disambigtemplates = [
link.title(withNamespace=False)
- for link in disambigpages.linkedPages()
- if link.namespace() == 10
+ for link in disambigpages.linkedPages()
+ if link.namespace() == 10
]
except pywikibot.NoPage:
self.site._disambigtemplates = ['Disambig']
Revision: 8571
Author: xqt
Date: 2010-09-17 09:20:40 +0000 (Fri, 17 Sep 2010)
Log Message:
-----------
NoPage and BadTitle exceptions for _getVersionHistory, requested by DrTrigon
Modified Paths:
--------------
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2010-09-17 05:41:56 UTC (rev 8570)
+++ trunk/pywikipedia/wikipedia.py 2010-09-17 09:20:40 UTC (rev 8571)
@@ -2615,6 +2615,13 @@
result = query.GetData(params, self.site())
if 'error' in result:
raise RuntimeError("%s" % result['error'])
+ pageInfo = result['query']['pages'].values()[0]
+ if result['query']['pages'].keys()[0] == "-1":
+ if 'missing' in pageInfo:
+ raise NoPage(self.site(), self.aslink(forceInterwiki=True),
+ "Page does not exist.")
+ elif 'invalid' in pageInfo:
+ raise BadTitle('BadTitle: %s' % self)
if 'query-continue' in result and getAll:
params['rvstartid'] = result['query-continue']['revisions']['rvstartid']
@@ -2624,7 +2631,7 @@
if skipFirst:
skipFirst = False
else:
- for r in result['query']['pages'].values()[0]['revisions']:
+ for r in pageInfo['revisions']:
c = ''
if 'comment' in r:
c = r['comment']