From 9ba7d2e51755733cda9357d30832dfc40216af20 Mon Sep 17 00:00:00 2001 From: Jonathan Golder Date: Wed, 8 Mar 2017 00:04:15 +0100 Subject: [PATCH] Change redfam generator filters Change and clear up the filters in redfam generator to keep track of article status and use positive conditionals --- lib/redfam.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/lib/redfam.py b/lib/redfam.py index 8dae7ec..8be9cf3 100644 --- a/lib/redfam.py +++ b/lib/redfam.py @@ -491,6 +491,28 @@ class RedFamWorker( RedFam ): page = pywikibot.Page(pywikibot.Link(article), pywikibot.Site()) + # Filter existing pages if requested with filter_existing=False + if page.exists(): + self.article_remove_status( "deleted", title=article ) + if filter_existing is False: + continue + # Filter non existing Pages if requested with filter_existing=True + else: + self.article_add_status( "deleted", title=article ) + if filter_existing: + continue + + # Filter redirects if requested with filter_redirects=True + if page.isRedirectPage(): + self.article_add_status( "redirect", title=article ) + if filter_redirects: + continue + # Filter noredirects if requested with filter_redirects=False + else: + self.article_remove_status("redirect", title=article ) + if filter_redirects is False: + continue + # Exclude by article status for status in exclude_article_status: if self.article_has_status( status, title=article ): @@ -501,20 +523,6 @@ class RedFamWorker( RedFam ): if not self.article_has_status( status, title=article ): continue - # Filter non existing Pages if requested with filter_existing=True - if filter_existing and not page.exists(): - continue - # Filter existing pages if requested with filter_existing=False - elif filter_existing is False and page.exists(): - continue - - # Filter redirects if requested with filter_redirects=True - if filter_redirects and page.isRedirectPage(): - continue - # Filter noredirects if requested with filter_redirects=False - elif filter_redirects is False and not page.isRedirectPage(): - continue - # Yield filtered pages yield page