Ir al contenido

Usuario discusión:Emijrp/Commonslista

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre
# -*- coding: utf-8  -*-

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

lista={}
cont=0

def analize(iw_en,wtitle):
	global lista
	global cont
	limagenes=[]
	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")
		return

	if not re.search(ur"(?iu):.*\.(jpe?g|png)", wtext_en):
		wikipedia.output(u"No tenemos imagenes donde rascar, :(")
		return
	
	images_en=re.finditer(ur"(?iu):(.*\.(jpe?g|png))", wtext_en)
	
	for i in images_en:
		image=i.group(1)
		#filtro
		if re.search(ur"(?iu)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")
			limagenes.append(image)
			
	if len(limagenes)>0:
		cont+=1
		lista[wtitle]=limagenes
		wikipedia.output(u"---->Van %s buenas<----" % str(cont))
	


if len(sys.argv)<=1:
	origen=u'A'
else:	
	origen=sys.argv[1]

gen = pagegenerators.AllpagesPageGenerator(origen,0)
preloadingGen = pagegenerators.PreloadingGenerator(gen, pageNumber = 100)
for page in preloadingGen:
	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"(?iu)\.(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

	thread.start_new_thread(analize,(iw_en,wtitle))

	if cont>4:
		salida=u"\n\n==%s==\n" % random.randint(1000,5000)
		listatmp=lista.copy()
		lista.clear()
		cont=0
		nuevos=0
		for i,k in listatmp.iteritems():
			nuevos+=1
			salida+=u"#[[%s]]" % i
			for j in k:
				salida+=" - [[:Image:%s|Imagen]]" % j
			salida+="\n"
		lista.clear()
		subpagina=wikipedia.Page(wikipedia.Site("es", "wikipedia"), u"User:Emijrp/Commons/4")
		subpagina.put(subpagina.get()+salida,u"%s artículos más" % str(nuevos))


Comienza una discusión acerca de Usuario:Emijrp/Commonslista

Escribir un mensaje