Usuario:BotWikisource/ElPintor/código

# -*- coding: utf-8  -*-

from __future__ import generators
import sys, re
import wikipedia, pagegenerators,catlib, config
import string
import random

class ReplaceRobot:
	def __init__(self, generator, acceptall = False):
		self.generator = generator
		self.acceptall = acceptall
	
	def run(self):
		salida=u"\n\n==%s==\n" % random.randint(1000,5000)
		cont=0
		for page in self.generator:
			if page.isRedirectPage() or not page.exists() or page.namespace()!=0:
				continue
			wtext=page.get()
			wtitle=page.title()
			
			wikipedia.output(u"--------------------------------------------------------")
			wikipedia.output(u"Analizando [%s]" % wtitle)
			if re.search(ur"(?i)\.(jpe?g|gif|bmp|svg|png)", wtext):
				wikipedia.output(u"El articulo tiene imagenes, a otra cosa mariposa")
				continue
			
			iw=re.finditer(ur"\[\[en:(.*)\]\]", wtext)
			iw_en=u""
			
			for i in iw:
				if not iw_en:
					iw_en+=i.group(1)
			
			if not iw_en:
				wikipedia.output(u"El articulo no tiene interwiki, :(")
				continue
			
			page_en=wikipedia.Page(wikipedia.Site("en", "wikipedia"), u"%s" % iw_en)
			
			try:
				wtext_en=page_en.get()
			except:
				wikipedia.output(u"Hubo algun fallo al acceder al interwiki")
				continue
			
			if not re.search(ur"(?i):.*\.(jpe?g|png)", wtext_en):
				wikipedia.output(u"No tenemos imagenes donde rascar, :(")
				continue
			
			images_en=re.finditer(ur"(?i):(.*\.(jpe?g|png))", wtext_en)
			
			salida1=u"#[[%s]]" % wtitle
			temp=salida1
			for i in images_en:
				image=i.group(1)
				#filtro
				if re.search(ur"(?i)flag|bandera", image):
					continue
				page_image=wikipedia.Page(wikipedia.Site("en", "wikipedia"), u"Image:%s" % image)
				if page_image.exists():
					wikipedia.output(u"[NO] - %s" % image)
					continue
				page_image=wikipedia.Page(wikipedia.Site("commons", "commons"), u"Image:%s" % image)
				if not page_image.exists():
					wikipedia.output(u"[PUF] - No esta en Commons")
					continue
				else:
					wikipedia.output(u"[OK] - 1up")
				
				salida1+=" - [[:Image:%s|Imagen]]" % image
			
			if temp!=salida1:
				salida+=salida1+"\n"
				cont+=1
			else:
				continue
			
			wikipedia.output(u"---->Van %s buenas<----" % str(cont))
			if cont>4:
				subpagina=wikipedia.Page(wikipedia.Site("es", "wikipedia"), u"User:Emijrp/Commons")
				subpagina.put(subpagina.get()+salida,u"%s artículos más" % str(cont))
				cont=0
				salida=u"\n\n==%s==\n" % random.randint(1000,5000)
			
for arg in wikipedia.handleArgs():
	if arg.startswith('-file'):
		if len(arg) >= 6:
			textfilename = arg[6:]
		gen = pagegenerators.TextfilePageGenerator(textfilename)
	elif arg.startswith('-start'):
		if len(arg) == 6:
			firstPageTitle = wikipedia.input(u'Which page do you want to chage?')
		else:
			firstPageTitle = arg[7:]
		namespace = wikipedia.Page(wikipedia.getSite(), firstPageTitle).namespace()
		firstPageTitle = wikipedia.Page(wikipedia.getSite(), firstPageTitle).titleWithoutNamespace()
		gen = pagegenerators.AllpagesPageGenerator(firstPageTitle, namespace)

preloadingGen = pagegenerators.PreloadingGenerator(gen, pageNumber = 100)
bot = ReplaceRobot(preloadingGen)
bot.run()