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):