diff --git a/earwigbot/tasks/wikiproject_tagger.py b/earwigbot/tasks/wikiproject_tagger.py index 9476959..6cbcc4d 100644 --- a/earwigbot/tasks/wikiproject_tagger.py +++ b/earwigbot/tasks/wikiproject_tagger.py @@ -103,8 +103,6 @@ class WikiProjectTagger(Task): r"failed ?ga$", r"old ?prod( ?full)?$", r"(old|previous) ?afd$", - - r"((wikiproject|wp) ?)?bio(graph(y|ies))?$", ] @staticmethod @@ -398,22 +396,26 @@ class WikiProjectTagger(Task): def add_banner(self, code, banner): """Add *banner* to *code*, following template order conventions.""" - index = 0 - for i, template in enumerate(code.ifilter_templates()): + predecessor = None + for template in code.ifilter_templates(): name = template.name.lower().replace("_", " ") for regex in self.TOP_TEMPS: if re.match(regex, name): - self.logger.debug(u"Adding after top template: %s", name) - index = i + 1 + self.logger.debug(u"Skipping past top template: %s", name) + predecessor = template + break if "wikiproject" in name or name.startswith("wp"): - self.logger.debug(u"Adding after banner template: %s", name) - index = i + 1 - - self.logger.debug(u"Inserting banner at index %s", index) - if index > 0 and not unicode(code.get(index - 1)).endswith("\n"): - banner = "\n" + banner - code.insert(index, banner + "\n") + self.logger.debug(u"Skipping past banner template: %s", name) + predecessor = template + if predecessor: + self.logger.debug("Inserting banner after template") + if not unicode(predecessor).endswith("\n"): + banner = "\n" + banner + code.insert_after(predecessor, banner + "\n") + else: + self.logger.debug("Inserting banner at beginning") + code.insert(0, banner + "\n") class _Job(object): """Represents a single wikiproject-tagging task.