http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11351

Revision: 11351
Author:   xqt
Date:     2013-04-07 10:31:07 +0000 (Sun, 07 Apr 2013)
Log Message:
-----------
new page method: Page.getMovedTarget()

Modified Paths:
--------------
    trunk/pywikipedia/wikipedia.py

Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py      2013-04-07 09:29:26 UTC (rev 11350)
+++ trunk/pywikipedia/wikipedia.py      2013-04-07 10:31:07 UTC (rev 11351)
@@ -901,8 +901,10 @@
             else:
                 # search for messages with no "view source" (aren't used in 
new versions)
                 if self.site().mediawiki_message('whitelistedittitle') in text:
-                    raise NoPage(u'Page editing is forbidden for anonymous 
users.')
-                elif self.site().has_mediawiki_message('nocreatetitle') and 
self.site().mediawiki_message('nocreatetitle') in text:
+                    raise NoPage(u'Page editing is forbidden for anonymous '
+                                 u'users.')
+                elif self.site().has_mediawiki_message('nocreatetitle') and \
+                     self.site().mediawiki_message('nocreatetitle') in text:
                     raise NoPage(self.site(), unicode(self))
                 # Bad title
                 elif 'var wgPageName = "Special:Badtitle";' in text \
@@ -2867,6 +2869,20 @@
         else:
             raise IsNotRedirectPage(self)
 
+    def getMovedTarget(self):
+        """Return a Page object for the target this Page was moved to.
+
+        If this page was not moved, it will raise a NoPage exception.
+
+        """
+        gen = self.site.logpages(number=1, mode='move', title=self.title(),
+                                 dump=True)
+        try:
+            lastmove = gen.next()['move']
+        except StopIteration:
+            raise NoPage(self.site(), unicode(self))
+        return Page(self.site, lastmove['new_title'])
+
     def getVersionHistory(self, forceReload=False, reverseOrder=False,
                           getAll=False, revCount=500):
         """Load the version history page and return history information.
@@ -4413,7 +4429,8 @@
         data['query'] = {'pages': data['entities']}
         for pageid in data['entities'].keys():
             if pageid == "-1":
-                raise NoPage(self.site(), unicode(self),"API query error, no 
pages found: %s" % data)
+                raise NoPage(self.site(), unicode(self),
+                             "API query error, no pages found: %s" % data)
             params1['titles'] = pageid
             ndata=query.GetData(params1, self.site(), sysop=sysop)
             data['entities'].update(ndata['query']['pages'])
@@ -4421,7 +4438,8 @@
         if 'error' in data:
             raise RuntimeError("API query error: %s" % data)
         if not 'pages' in data['query']:
-            raise NoPage(self.site(), unicode(self),"API query error, no pages 
found: %s" % data)
+            raise NoPage(self.site(), unicode(self),
+                         "API query error, no pages found: %s" % data)
         pageInfo = ndata['query']['pages'].values()[0]
         if data['query']['pages'].keys()[0] == "-1":
             if 'missing' in pageInfo:


_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to