Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import re
- import sys
- import wikipedia, pagegenerators
- import catlib
- import thread
- import time
- def hilo(page, idioma):
- wtext=page.get()
- wtitle=page.title()
- p=wikipedia.Page(wikipedia.Site(idioma, "wikipedia"), "%s" % wtitle)
- if p.exists() and not p.isRedirectPage() and not p.isDisambig():
- wikipedia.output(u"----------------------------------------------------------")
- wikipedia.output(u"Analizando: %s en %s" % (wtitle, idioma))
- #descartamos articulos ingleses con interwikis a la española
- iws=p.interwiki()
- salimos=0
- for i in iws:
- site=u"%s" % i.site()
- if site==u"wikipedia:es":
- wikipedia.output(u"El articulo %s tiene iw espanol, descartamos" % idioma)
- salimos=1
- if salimos:
- return 0
- linked=page.linkedPages()
- linkeden=p.linkedPages()
- aux=[]
- for i in linkeden:
- aux.append(i.title())
- #wikipedia.output(u"%s" % i.title())
- linkeden=aux
- cont=0
- total=0
- for i in linked:
- if i.exists() and not i.isRedirectPage() and not i.isDisambig():
- #wikipedia.output(u"%s" % i.title())
- iws=i.interwiki()
- for j in iws:
- site=u"%s" % j.site()
- title=u"%s" % j.title()
- if site==u"wikipedia:%s" % idioma:
- total+=1
- if linkeden.count(title)!=0:
- wikipedia.output(u"%s" % j.title())
- cont+=1
- wikipedia.output(u"Analizando: %s en %s" % (wtitle, idioma))
- wikipedia.output(u"Total=%s | Contador=%s" % (str(total), str(cont)))
- if cont>=total/2 and cont>0: #50% de margen
- iws=p.interwiki()
- iws.append(p)
- iws.sort()
- nuevo=u"%s\n" % wtext
- for i in iws:
- nuevo+=u"\n%s" % i
- if nuevo!=wtext:
- wikipedia.showDiff(wtext, nuevo)
- page.put(nuevo, u"Bot: Añadidos [[Usuario:Emijrp/Interwikis-mágicos|interwikis mágicos]] (desde [[%s:%s]])" % (idioma, wtitle))
- return 0
- if idioma=="es":
- hilo(page, "en")
- elif idioma=="en":
- hilo(page, "de")
- elif idioma=="de":
- hilo(page, "fr")
- elif idioma=="fr":
- hilo(page, "nl")
- elif idioma=="nl":
- hilo(page, "it")
- class IwCat:
- def __init__(self, generator, acceptall = False):
- self.generator = generator
- self.acceptall = acceptall
- def run(self):
- for page in self.generator:
- if page.isRedirectPage() or page.isDisambig() or page.interwiki():
- #wikipedia.output( u"==== %s ====\nRedireccion" % page.title())
- iiii=0
- else:
- #hilo(page, "en")
- #time.sleep(0.5)
- thread.start_new_thread(hilo, (page, "es"))
- time.sleep(2)
- genfactory = pagegenerators.GeneratorFactory()
- genfactory.handleArg(u'-start:!')
- generator = genfactory.getCombinedGenerator()
- preload = pagegenerators.PreloadingGenerator(generator)
- IW = IwCat(preload)
- IW.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement