Sfoglia il codice sorgente

Finish up task.

tags/v0.1^2
Ben Kurtovic 12 anni fa
parent
commit
2afadce771
1 ha cambiato i file con 31 aggiunte e 23 eliminazioni
  1. +31
    -23
      earwigbot/tasks/wikiproject_tagger.py

+ 31
- 23
earwigbot/tasks/wikiproject_tagger.py Vedi File

@@ -69,29 +69,29 @@ class WikiProjectTagger(Task):
# Regexes for template names that should always go above the banner, based
# on [[Wikipedia:Talk page layout]]:
TOP_TEMPS = [
r"skip ?to ?(toc|talk|toctalk)",
r"skip ?to ?(toc|talk|toctalk)$",

r"ga ?nominee",
r"ga ?nominee$",

r"(user ?)?talk ?(header|page|page ?header)",
r"(user ?)?talk ?(header|page|page ?header)$",

r"community ?article ?probation",
r"censor(-nudity)?",
r"blp(o| ?others?)?",
r"controvers(ial2?|y)"
r"community ?article ?probation$",
r"censor(-nudity)?$",
r"blp(o| ?others?)?$",
r"controvers(ial2?|y)$",

r"(not ?(a ?)?)?forum",
r"tv(episode|series)talk",
r"recurring ?themes",
r"faq",
r"(round ?in ?)?circ(les|ular)",
r"(not ?(a ?)?)?forum$",
r"tv(episode|series)talk$",
r"recurring ?themes$",
r"faq$",
r"(round ?in ?)?circ(les|ular)$",

r"ar(ti|it)cle ?(history|milestones)",
r"failed ?ga",
r"old ?prod( ?full)?",
r"(old|previous) ?afd",
r"ar(ti|it)cle ?(history|milestones)$",
r"failed ?ga$",
r"old ?prod( ?full)?$",
r"(old|previous) ?afd$",

r"((wikiproject|wp) ?)?bio(graph(y|ies))?"
r"((wikiproject|wp) ?)?bio(graph(y|ies))?$",
]

def _upperfirst(self, text):
@@ -260,7 +260,7 @@ class WikiProjectTagger(Task):
"book": 0, "template": 0, "category": 0}
for template in code.ifilter_templates(recursive=True):
if template.has_param("class"):
value = str(template.get("class").value).lower()
value = unicode(template.get("class").value).lower()
if value in classes:
classes[value] += 1
values = tuple(classes.values())
@@ -281,20 +281,28 @@ class WikiProjectTagger(Task):
if not shells:
shells = code.filter_templates(matches=regex, recursive=True)
if shells:
log = u"Inserting banner into shell: {0}"
self.logger.debug(log.format(shells[0].name))
return shells[0]

def add_banner(self, code, banner):
"""Add *banner* to *code*, following template order conventions."""
ins_index = 0
if has_top_temps: # TODO
xxx
else:
yyy
index = 0
for i, template in enumerate(code.ifilter_templates()):
name = template.name.lower().replace("_", " ")
for regex in self.TOP_TEMPS:
if re.match(regex, name):
self.logger.info("Skipping top template: {0}".format(name))
index = i + 1

self.logger.debug(u"Inserting banner at index {0}".format(index))
code.insert(index, banner)

def apply_genfixes(self, code):
"""Apply general fixes to *code*, such as template substitution."""
regex = r"^\{\{\s*((un|no)?s(i((gn|ng)(ed3?)?|g))?|usu|tilde|forgot to sign|without signature)"
for template in code.ifilter_templates(matches=regex):
self.logger.debug("Applying genfix: substitute {{unsigned}}")
template.name = "subst:unsigned"




Caricamento…
Annulla
Salva