diff --git a/bots/markpages.py b/bots/markpages.py index 5dcf527..f395af2 100644 --- a/bots/markpages.py +++ b/bots/markpages.py @@ -145,14 +145,10 @@ class MarkPagesBot( CurrentPageBot ): # sets 'current_page' on each treat() for redfam in self.redfams: # We need the talkpage (and only this) of each existing page - for talkpage in pagegenerators.PageWithTalkPageGenerator( - redfam.article_generator( - filter_existing=True, - exclude_article_status=["marked"] ), - return_talk_only=True ): - - # Add reference to redfam to talkpages - talkpage.redfam = redfam + for talkpage in redfam.article_generator( + filter_existing=True, + exclude_article_status=["marked"], + talkpages=True ): yield talkpage @@ -188,14 +184,8 @@ class MarkPagesBot( CurrentPageBot ): # sets 'current_page' on each treat() # None if change was not accepted by user save_ret = self.put_current( self.new_text, summary=summary ) - # Normalize title with anchor (replace spaces in anchor) - article = self.current_page.toggleTalkPage().title( - asLink=True, textlink=True) - article = article.strip("[]") - article_parts = article.split("#", 1) - if len(article_parts) == 2: - article_parts[1] = article_parts[1].replace(" ", "_") - article = "#".join(article_parts) + # Get article as named in db + article = self.current_page.redarticle # Status if add_ret is None or ( add_ret and save_ret ): diff --git a/lib/redfam.py b/lib/redfam.py index 191a895..8248a7e 100644 --- a/lib/redfam.py +++ b/lib/redfam.py @@ -514,7 +514,8 @@ class RedFamWorker( RedFam ): def article_generator(self, # noqa filter_existing=None, filter_redirects=None, exclude_article_status=[], - onlyinclude_article_status=[] ): + onlyinclude_article_status=[], + talkpages=None ): """ Yields pywikibot pageobjects for articles belonging to this redfams in a generator @@ -528,6 +529,8 @@ class RedFamWorker( RedFam ): set to False to get only redirectpages, unset/None results in not filtering @type filter_redirects bool/None + @param talkpages Set to True to get Talkpages instead of article page + @type talkpages bool/None """ @@ -591,6 +594,16 @@ class RedFamWorker( RedFam ): except Break: break + # Toggle talkpage + if talkpages: + page = page.toggleTalkPage() + + # Add reference to redfam to pages + page.redfam = self + + # Keep article title from db with page object + page.redarticle = article + # Yield filtered pages yield page