# -*- coding: utf-8 -*-
import wikipedia
import pagegenerators
import catlib
import re
import codecs
pgnum=200
i=0
listado=u'Plantillas de wikipedia: \n\n'
paginadecontrol=u'Usuario:Er Komandante/plantillas'
resumen=u'Robot: control de plantillas'
# ajustar bien los meses: se ponen aquí el mes en curso y el pasado
mes1='ago 2007'
mes2='sep 2007'
scriptlog='#!/bin/bash\n'
lista= u'{| {{tablabonita}}\n! nombre (disc.)\n! edición 1\n'
# generadores
cat = catlib.Category(wikipedia.getSite(), 'Category:Wikipedia:Plantillas para borrar')
gen = pagegenerators.CategorizedPageGenerator(cat)
gen = pagegenerators.PreloadingGenerator(gen, pageNumber = pgnum)
# procesado de plantillas, elaboración del programa
for page in gen:
#print page.title()
chglabel=re.compile (ur'Plantilla Discusión:')
nombre=chglabel.sub(u'Plantilla:',page.title())
ap=wikipedia.Page(wikipedia.getSite(), nombre)
wikipedia.output (nombre)
try:
texto=ap.get()
lista=lista+ u'|-----\n| [['+ ap.title() +u']]' + u' ([['+ page.title() +u'|disc.]] · [[Especial:Whatlinkshere/'+ ap.title()+u'|uso]])'
lst=page.getVersionHistory() #lectura del historial
lista=lista+u'\n| '
if len(lst)==1:
lista=lista + u' única edición en discusión: '+ lst[0][1] + u' por: {{u|'+lst[0][2]+ u'}}'
# comprueba que no se trata de una plantilla recientemente puesta a borrar, en caso contrario, se la salta. ¡hay que ajustar bien los meses!
#if mes2 in lst[0][1]:
if mes1 in lst[0][1] or mes2 in lst[0][1]:
print "Plantilla puesta a borrar recientemente, no se incluye en el lote a borrar."
else:
print "Insertando en la cola a borrar."
chl=re.compile (ur'Plantilla:')
nombreplantilla=chl.sub(u'',ap.title())
scriptlog=scriptlog+ 'python template.py -always -remove \"'
#scriptlog=scriptlog+ap.title()
scriptlog=scriptlog+nombreplantilla
scriptlog=scriptlog+ '\" -putthrottle:0 -namespace:0 '
scriptlog=scriptlog+ '-summary:\"Robot: Retirada de plantilla innecesaria y sin defender por al menos un mes, no cumple con el [[WP:ME|manual de estilo]].\"\n'
lista=lista + u'\n'
except wikipedia.NoPage:
print 'no existe. Debe marcar la plantilla como borrada, si no lo está'
txt=page.get()
if u'{{innecesaria}}' in txt:
#chgtemplate=re.compile (ur'{{innecesaria}}')
chgtemplate=re.compile (ur'{{innecesaria}}')
txt=chgtemplate.sub(u'{{innecesaria}}',txt)
page.put (u'{{plantilla borrada}}\n\n'+txt, u'Robot: indicando plantilla borrada, escondiendo marca de innecesaria')
except wikipedia.IsRedirectPage:
print 'es una redirección..........'
i=i+1
#if i>=50:
#break
# creando lista de plantillas
listaplantillas=wikipedia.Page(wikipedia.getSite(), paginadecontrol)
listaplantillas.put(lista, comment=resumen)
print "Total: ", i," plantillas listadas."
script=codecs.open("templatekiller.sh", "w", "utf-8")
script.write (scriptlog)
script.close()
# parando el programa
wikipedia.stopme()