daily pastebin goal
13%
SHARE
TWEET

Untitled

a guest Apr 1st, 2012 85 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top