Usuario:Chixpy/PyWikipediaBot/Licencias imágenes.py
Ir a la navegación
Ir a la búsqueda
Programa para poner las licencias de las imágenes que no tienen ninguna, y quitar la categoría de aquellas están en categoría:Imágenes
#!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import division import re import wikipedia import catlib, config, pagegenerators # Esta lista debería crearla automáticamente.... PlantillasLicencia = [u'CC-by (imagen)', u'CC-by-2.5 (imagen)', u'CC-by-sa (imagen)', u'CC-by-sa-2.5 (imagen)', u'Dominio público (imagen)', u'FU Imagen Paint', u'FU Imagen para parodia', u'FU Imagen sin origen', u'Flickr4', u'Flickr5', u'GNUFDL (imagen)', u'Sin Licencia' ] PlantillasOrigen = [u'Origen', u'origen'] class BasicBot: def __init__(self): self.cont = 0; self.site = wikipedia.getSite() self.cat = catlib.Category(self.site, "%s:%s" % (self.site.namespace(14), u'Imágenes')) def run(self): wikipedia.setAction(u"Bot: Poniendo licencias, quitando de [[category:Imágenes]]") gen = pagegenerators.CategorizedPageGenerator(self.cat, recurse=False, start=None) Pagina = '1'; while Pagina != None: Pagina = gen.next() self.treat(Pagina) return def treat(self, Pagina): self.cont += 1 wikipedia.output(u'Página %(1)d: %(2)s' % {'1': self.cont, '2': Pagina.title()}) try: Texto = Pagina.get() except: return Texto = wikipedia.replaceCategoryInPlace(Texto, self.cat, None) Plantillas = Pagina.templatesWithParams() if len(Plantillas) == 0: # No hay plantillas en la página # No nos liamos y añadimos "{{FU Imagen sin origen}}" wikipedia.output(u"No tiene plantillas") Texto += '\n{{FU Imagen sin origen}}' else: TieneLicencia = False TieneOrigen = False for i in Plantillas: if i[0] in PlantillasLicencia: wikipedia.output(u"Tiene una plantilla de licencias: %s" % i[0]) TieneLicencia = True if i[0] in PlantillasOrigen: wikipedia.output(u"Tiene una plantilla de origen: %s" % i[0]) TieneOrigen = True if not TieneLicencia: if TieneOrigen: wikipedia.output(u"Añadiendo {{FU Imagen para parodia}}") Texto += '\n{{FU Imagen para parodia}}' else: wikipedia.output(u"Añadiendo {{FU Imagen sin origen}}") Texto += '\n{{FU Imagen sin origen}}' Pagina.put(Texto, minorEdit = True) wikipedia.output(u"") return def main(): bot = BasicBot() bot.run() if __name__ == "__main__": try: main() finally: wikipedia.stopme()