# -*- 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()