Advertisement
Guest User

Untitled

a guest
Apr 1st, 2012
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.72 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. import re
  4. import sys
  5. import wikipedia, pagegenerators
  6. import catlib
  7. import thread
  8. import time
  9.  
  10. def hilo(page, idioma):
  11.     wtext=page.get()
  12.     wtitle=page.title()
  13.  
  14.     p=wikipedia.Page(wikipedia.Site(idioma, "wikipedia"), "%s" % wtitle)
  15.  
  16.     if p.exists() and not p.isRedirectPage() and not p.isDisambig():
  17.         wikipedia.output(u"----------------------------------------------------------")
  18.         wikipedia.output(u"Analizando: %s en %s" % (wtitle, idioma))
  19.        
  20.         #descartamos articulos ingleses con interwikis a la española
  21.         iws=p.interwiki()
  22.         salimos=0
  23.         for i in iws:
  24.             site=u"%s" % i.site()
  25.             if site==u"wikipedia:es":
  26.                 wikipedia.output(u"El articulo %s tiene iw espanol, descartamos" % idioma)
  27.                 salimos=1
  28.        
  29.         if salimos:
  30.             return 0
  31.  
  32.         linked=page.linkedPages()
  33.         linkeden=p.linkedPages()
  34.        
  35.         aux=[]
  36.         for i in linkeden:
  37.             aux.append(i.title())
  38.             #wikipedia.output(u"%s" % i.title())
  39.         linkeden=aux
  40.        
  41.         cont=0
  42.         total=0
  43.         for i in linked:
  44.             if i.exists() and not i.isRedirectPage() and not i.isDisambig():
  45.                 #wikipedia.output(u"%s" % i.title())
  46.                 iws=i.interwiki()
  47.                 for j in iws:
  48.                     site=u"%s" % j.site()
  49.                     title=u"%s" % j.title()
  50.                     if site==u"wikipedia:%s" % idioma:
  51.                         total+=1
  52.                         if linkeden.count(title)!=0:
  53.                             wikipedia.output(u"%s" % j.title())
  54.                             cont+=1
  55.         wikipedia.output(u"Analizando: %s en %s" % (wtitle, idioma))
  56.         wikipedia.output(u"Total=%s | Contador=%s" % (str(total), str(cont)))
  57.        
  58.         if cont>=total/2 and cont>0: #50% de margen
  59.             iws=p.interwiki()
  60.             iws.append(p)
  61.             iws.sort()
  62.             nuevo=u"%s\n" % wtext
  63.             for i in iws:
  64.                 nuevo+=u"\n%s" % i
  65.             if nuevo!=wtext:
  66.                 wikipedia.showDiff(wtext, nuevo)
  67.                 page.put(nuevo, u"Bot: Añadidos [[Usuario:Emijrp/Interwikis-mágicos|interwikis mágicos]] (desde [[%s:%s]])" % (idioma, wtitle))
  68.  
  69.                 return 0
  70.  
  71.     if idioma=="es":
  72.         hilo(page, "en")
  73.     elif idioma=="en":
  74.         hilo(page, "de")
  75.     elif idioma=="de":
  76.         hilo(page, "fr")
  77.     elif idioma=="fr":
  78.         hilo(page, "nl")
  79.     elif idioma=="nl":
  80.         hilo(page, "it")
  81.  
  82. class IwCat:
  83.     def __init__(self, generator, acceptall = False):
  84.         self.generator = generator
  85.         self.acceptall = acceptall
  86.    
  87.     def run(self):
  88.         for page in self.generator:
  89.  
  90.             if page.isRedirectPage() or page.isDisambig() or page.interwiki():
  91.             #wikipedia.output( u"==== %s ====\nRedireccion" % page.title())
  92.                 iiii=0
  93.             else:
  94.                 #hilo(page, "en")
  95.                 #time.sleep(0.5)
  96.                 thread.start_new_thread(hilo, (page, "es"))
  97.                 time.sleep(2)
  98.                
  99.  
  100.  
  101. genfactory = pagegenerators.GeneratorFactory()
  102. genfactory.handleArg(u'-start:!')
  103. generator = genfactory.getCombinedGenerator()
  104. preload = pagegenerators.PreloadingGenerator(generator)
  105. IW = IwCat(preload)
  106. IW.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement