Usuario:Emijrp/AQF
Apariencia
- Licencia: GPL
- Autor: emijrp
from __future__ import generators
import sys, re
import wikipedia, pagegenerators,catlib, config
import thread, time
for category in [u'Astronomía', u'Astrometría', u'Mecánica celeste', u'Biología', u'Evolución', u'Zoología', u'Física', u'Geología', u'Edad Media', u'Informática', u'Bases de datos', u'Lenguajes de programación', u'Programación', u'Algoritmos', u'Seguridad informática', u'Software', u'Literatura de Francia', u'Escritores de Francia', u'Literatura de Italia', u'Escritores de Italia', u'Mitología griega', u'Mitología romana', u'Tecnología', u'Fotografía', u'Mercadotenia', u'Monedas', u'Sistemas operativos', u'Política', u'Empresas multinacionales', u'Geografía', u'Cine', u'Geometría', u'Educación']:
analizadas=0
rojos=0
azules=0
enlaces=0
listaMencionados=[]
listaRojos=[]
listaAzules=[]
cat=catlib.Category(wikipedia.Site("es", "wikipedia"), u"Category:%s" % category)
pagegenerator = pagegenerators.CategorizedPageGenerator(cat, False)
for page in pagegenerator:
try:
if page.isRedirectPage():
wikipedia.output( u"==== %s ====\nRedireccion" % page.title())
else:
analizadas+=1
wtitle=page.title()
#wtext=page.get()
listaEnlaces=page.linkedPages()
#wikipedia.output(u"----------------------------------\n%s enlaza con %s artículos" % (wtitle,len(listaEnlaces)))
for i in listaEnlaces:
title=i.title()
if title not in listaMencionados and i.namespace()==0:
listaMencionados.append(title)
enlaces+=1
except:
pass
wikipedia.output(u"Enlaces [%s]" % str(enlaces))
cont=len(listaMencionados)
ini=0
fin=0
num=250
while fin!=cont:
if cont-fin>num:
ini=fin
fin+=num
else:
ini=fin
fin+=cont-fin
pages = [wikipedia.Page(wikipedia.Site("es", "wikipedia"), PageTitle) for PageTitle in listaMencionados[ini:fin]]
gen = iter(pages)
preloadingGen = pagegenerators.PreloadingGenerator(gen, pageNumber = num)
for page in preloadingGen:
cont-=1
title=page.title()
if re.search(ur"\'|\:|\[|\#|https?\:\/\/", title):
continue
if page.exists():
azules+=1
listaAzules.append(title)
#wikipedia.output(u"[%s] EXISTE" % title)
else:
rojos+=1
listaRojos.append(title)
#wikipedia.output(u"[%s] FALTA" % title)
salida=u"{{Usuario:Emijrp/Artículos que faltan/Cabecera}}\n\n"
listaRojos.sort()
tope=300
for i in listaRojos:
if tope>0:
salida+=u"#[[%s]] {{User:Emijrp/b|%s|%s}}\n" % (i, re.sub(ur" ", ur"_", i), re.sub(ur" ", ur"+", i))
tope-=1
wikipedia.output(u"AQF [%s]" % str(len(listaRojos)))
wiii=wikipedia.Page(wikipedia.Site("es", "wikipedia"), u"User:Emijrp/Artículos que faltan/%s" % category)
wiii.put(salida, u"BOT - Actualizando lista")
time.sleep(300)