User:BOTijo/Code/1

From Wikipedia, the free encyclopedia

[edit] Version 1

# -*- coding: utf-8  -*-
# author: emijrp, license: GPL

import wikipedia, pagegenerators, catlib
import re, random, time, thread
import cosmetic_changes

site=wikipedia.Site("en", "wikipedia")
global total
total=u""

def f(page):
                global total
                if page.isRedirectPage() or page.isDisambig() or page.namespace()!=0:
                        return
                wikipedia.output(u"Analizando: [[%s]]" % page.title())
                wtext=page.get()
                if page.imagelinks() or re.search(ur"(?i)\.(jpe?g|gif|pne?g|svg)", wtext):
                        wikipedia.output(u"Ya tiene imagenes")
                        return
                
                iws=page.interwiki()
                
                l=[]
                for i in iws:
                        if i.exists() and not i.isRedirectPage() and not i.isDisambig() and i.imagelinks():
                                il=i.imagelinks()
                                for j in il:
                                        if j.fileIsOnCommons():
                                                if re.search(ur"(?i)\.jpe?g", j.title()) and l.count(j.titleWithoutNamespace())==0:
                                                        wikipedia.output(u"------>%s<-------" % j.title())
                                                        l.append(j.titleWithoutNamespace())
                if l:
                        salida=u"\n* [[%s]] -" % page.title()
                        for i in l:
                                salida+=" [[commons:Image:%s|Image]]" % i
                        total+=salida


for contt in range(811,1000):
        ano=contt+1000

        cat=catlib.Category(site, u"Category:%s births" % str(ano))
        gen=pagegenerators.CategorizedPageGenerator(cat)

        for page in gen:
                #page=wikipedia.Page(site, u"Erik Waller")
                thread.start_new_thread(f, (page,))
                time.sleep(0.2)
        
        time.sleep(20)
        wiii=wikipedia.Page(site, u"User:BOTijo/Sandbox")
        wiii.put(u"%s\n\n==[[:%s]]==%s" % (wiii.get(), cat.title(), total), u"useful images ;)")
        total=u""

[edit] Version 2

# -*- coding: utf-8  -*-

import wikipedia, pagegenerators, catlib
import re, random, time, thread
import cosmetic_changes

site=wikipedia.Site("en", "wikipedia")
#site=wikipedia.Site("pl", "wikipedia")
#site=wikipedia.Site("fr", "wikipedia")
#site=wikipedia.Site("es", "wikipedia")
global total
total=u""

def f(page):
                global total
                if page.isRedirectPage() or page.isDisambig() or page.namespace()!=0:
                        return
                wtitle=page.title()
                wikipedia.output(u"Analizando: [[%s]]" % wtitle)
                wtext=page.get()
                if page.imagelinks() or re.search(ur"(?i)\.(jpe?g|gif|pne?g|svg)", wtext):
                        wikipedia.output(u"Ya tiene imagenes")
                        return

                iws=page.interwiki()

                l=[]
                where=[]
                for i in iws:
                        if i.exists() and not i.isRedirectPage() and not i.isDisambig():
                                if i.imagelinks() or re.search(ur"(?i)\.(jpe?g|gif|pne?g|svg)", i.get()):
                                        il=i.imagelinks()
                                        for j in il:
                                                if j.fileIsOnCommons():
                                                        if re.search(ur"(?i)\.jpe?g", j.title()) and l.count(j.titleWithoutNamespace())==0 and not re.search(ur"(?i)(herb|escudo|flag|bandera|coat|arms|build|edificio|palac|tomb|tumba|grave|map|book|sign|poster|grab|                 cover|memo|kirche|pont|monument)", j.title()):
                                                                wikipedia.output(u"------>%s<-------" % j.title())
                                                                l.append(j.titleWithoutNamespace())
                                else:
                                        where.append([i.site().lang, i.title()])

                if l and len(l)<4:
                        salida=u"\n===[[%s]]===\n<gallery>" % wtitle
                        for i in l:
                                salida+="\nImage:%s|{{User:Emijrp/Add|%s|%s|%s}}" % (i, wtitle, i, "en")
                                for j in where:
                                        salida+="<br/>{{User:Emijrp/Add|%s|%s|%s}}" % (j[1], i, j[0])
                        salida+="\n</gallery>"
                        total+=salida


for contt in range(867,1000):
        ano=contt+1000

        cat=catlib.Category(site, u"Category:%s births" % str(ano))
        #cat=catlib.Category(site, u"Category:Urodzeni w %s" % str(ano))
        #cat=catlib.Category(site, u"Category:Naissance en %s" % str(ano))
        #cat=catlib.Category(site, u"Category:Nacidos en %s" % str(ano))
        gen=pagegenerators.CategorizedPageGenerator(cat)

        for page in gen:
                thread.start_new_thread(f, (page,))
                time.sleep(0.2)

        time.sleep(20)
        wiii=wikipedia.Page(site, u"User:BOTijo/Images for biographies/%s" % str(((ano - 1860)/10)+1))
        #wiii=wikipedia.Page(site, u"User:BOTijo/Images for biographies/%s" % str(((ano - 1800)/20)+1))
        #wiii=wikipedia.Page(wikipedia.Site("en", "wikipedia"), u"User:BOTijo/Images for biographies/es/1")
        wiii.put(u"%s\n\n==[[:%s]]==%s" % (wiii.get(), cat.title(), total), u"+")
        total=u""


[edit] Version 3

# -*- coding: utf-8  -*-

import wikipedia, pagegenerators, catlib
import re, random, time, thread
import cosmetic_changes

site=wikipedia.Site("en", "wikipedia")
#site=wikipedia.Site("pl", "wikipedia")
#site=wikipedia.Site("fr", "wikipedia")
#site=wikipedia.Site("es", "wikipedia")
global total
global c
c=0
total=u""

def f(page):
        try:
                global total
                global c
                global lang
                
                if page.isRedirectPage() or page.isDisambig() or page.namespace()!=0:
                        return
                wtitle=page.title()
                wikipedia.output(u"Analizando: [[%s]]" % wtitle)
                wtext=page.get()
                candidates=[]
                images={}
                iws=page.interwiki()
                iws.append(page)
                iws.sort()
                
                if len(iws)<4: #necesita 3 wikipedias con imagen y un candidato como minimo
                        return
                
                for i in iws:
                        if i.exists() and not i.isRedirectPage() and not i.isDisambig():
                                if i.imagelinks():
                                        im=i.imagelinks()
                                        for j in im:
                                                if j.fileIsOnCommons():
                                                        if re.search(ur"(?i)\.jpe?g", j.title()) and not re.search(ur"(?i)(herb|escudo|flag|bandera|coat|arms|build|edificio|palac|tomb|tumba|grave|map|armo|book|sign|poster|grab|cover|memo|kirche|pont|monument)", j.title()):
                                                                temp=j.titleWithoutNamespace()
                                                                if images.has_key(temp):
                                                                        images[temp]+=1
                                                                else:
                                                                        images[temp]=1
                                elif not re.search(ur"(?i)\.(jpe?g|gif|pne?g|svg)", i.get()):
                                        candidates.append(i)
                
                salida=u"\n===[[%s]]===\n<gallery>" % wtitle
                add=False
                temp=0
                
                #sort images list
                images = [(v, k) for k, v in images.items()]
                images.sort()
                images.reverse()
                images = [(k, v) for v, k in images]

                if candidates:
                        for k,v in images:
                                #check if it is fine
                                buena=False
                                trozos=wtitle.split(" ")
                                for i in trozos:
                                        if len(i)>3 and re.search(ur"(?i)%s" % i, k):
                                                buena=True
                                
                                if buena and v>2 and temp<3:
                                        temp+=1
                                        add=True
                                        salida+="\nImage:%s|" % k
                                        for j in candidates:
                                                salida+="{{User:Emijrp/Add|%s|%s|%s}}<br/>" % (j.title(), k, j.site().lang)
                        salida+="\n</gallery>"
                
                if add:
                        c+=1
                        total+=salida
                        wikipedia.output(u"\03{lightred}VAN %s\03{default}" % str(c))
        except:
                pass

start=755

for contt in range(start,1000):
        c=0
        ano=contt+1000

        cat=catlib.Category(site, u"Category:%s births" % str(ano))
        #cat=catlib.Category(site, u"Category:Urodzeni w %s" % str(ano))
        #cat=catlib.Category(site, u"Category:Naissance en %s" % str(ano))
        #cat=catlib.Category(site, u"Category:Nacidos en %s" % str(ano))
        gen=pagegenerators.CategorizedPageGenerator(cat)

        for page in gen:
                thread.start_new_thread(f, (page,))
                time.sleep(0.7)

        time.sleep(30)
        wiii=wikipedia.Page(site, u"User:BOTijo/Images for biographies/%s" % str(((ano - (1700))/15)+1))
        #wiii=wikipedia.Page(site, u"User:BOTijo/Images for biographies/%s" % str(((ano - 1800)/20)+1))
        #wiii=wikipedia.Page(wikipedia.Site("en", "wikipedia"), u"User:BOTijo/Images for biographies/es/1")
        wiii.put(u"%s\n\n==%s==%s" % (wiii.get(), str(random.randint(1000,9999)), total), u"+")
        total=u""