Browse Source

Smarter banner placement.

tags/v0.3
Ben Kurtovic 7 years ago
parent
commit
be2fcff8e6
1 changed files with 19 additions and 6 deletions
  1. +19
    -6
      earwigbot/tasks/wikiproject_tagger.py

+ 19
- 6
earwigbot/tasks/wikiproject_tagger.py View File

@@ -282,10 +282,7 @@ class WikiProjectTagger(Task):
banner = self.make_banner(job, code, is_category=is_category) banner = self.make_banner(job, code, is_category=is_category)
shell = self.get_banner_shell(code) shell = self.get_banner_shell(code)
if shell: if shell:
if shell.has_param(1):
shell.get(1).value.insert(0, banner + "\n")
else:
shell.add(1, banner)
self.add_banner_to_shell(shell, banner)
else: else:
self.add_banner(code, banner) self.add_banner(code, banner)


@@ -388,6 +385,17 @@ class WikiProjectTagger(Task):
self.logger.debug(log, shells[0].name) self.logger.debug(log, shells[0].name)
return shells[0] return shells[0]


def add_banner_to_shell(self, shell, banner):
"""Add *banner* to *shell*."""
if shell.has_param(1):
if unicode(shell.get(1).value).endswith("\n"):
banner += "\n"
else:
banner = "\n" + banner
shell.get(1).value.append(banner)
else:
shell.add(1, banner)

def add_banner(self, code, banner): def add_banner(self, code, banner):
"""Add *banner* to *code*, following template order conventions.""" """Add *banner* to *code*, following template order conventions."""
index = 0 index = 0
@@ -395,11 +403,16 @@ class WikiProjectTagger(Task):
name = template.name.lower().replace("_", " ") name = template.name.lower().replace("_", " ")
for regex in self.TOP_TEMPS: for regex in self.TOP_TEMPS:
if re.match(regex, name): if re.match(regex, name):
self.logger.debug(u"Skipping top template: %s", name)
self.logger.debug(u"Adding after top template: %s", name)
index = i + 1 index = i + 1
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) self.logger.debug(u"Inserting banner at index %s", index)
code.insert(index, banner)
if index > 0 and not unicode(code.get(index - 1)).endswith("\n"):
banner = "\n" + banner
code.insert(index, banner + "\n")




class _Job(object): class _Job(object):


Loading…
Cancel
Save