Revision: 6125
Author:   russblau
Date:     2008-12-03 20:00:42 +0000 (Wed, 03 Dec 2008)

Log Message:
-----------
fix nagging problem with links to redirect pages

Modified Paths:
--------------
    branches/rewrite/pywikibot/site.py

Modified: branches/rewrite/pywikibot/site.py
===================================================================
--- branches/rewrite/pywikibot/site.py  2008-12-03 18:09:30 UTC (rev 6124)
+++ branches/rewrite/pywikibot/site.py  2008-12-03 20:00:42 UTC (rev 6125)
@@ -1080,8 +1080,24 @@
         if filterRedirects is not None:
             blgen.request["gblfilterredir"] = filterRedirects and "redirects"\
                                                               or "nonredirects"
-        if followRedirects: #FIXME This doesn't work correctly
-            blgen.request["gblredirect"] = ""
+        if followRedirects:
+            # bug: see http://bugzilla.wikimedia.org/show_bug.cgi?id=16218
+            # links identified by MediaWiki as redirects may not really be,
+            # so we have to check each "redirect" page and see if it
+            # really redirects to this page
+            blgen.request["gblfilterredir"] = "nonredirects"
+            redirgen = api.PageGenerator("backlinks", gbltitle=bltitle,
+                                         site=self, gblfilterredir="redirects")
+            if "gblnamespace" in blgen.request:
+                redirgen.request["gblnamespace"] = 
blgen.request["gblnamespace"]
+            genlist = [blgen]
+            for redir in redirgen:
+                if redir.getRedirectTarget() == page:
+                    genlist.append(
+                        self.pagebacklinks(
+                            redir, True, None, namespaces))
+            import itertools
+            return itertools.chain(*genlist)
         return blgen
 
     def page_embeddedin(self, page, filterRedirects=None, namespaces=None):



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

Reply via email to