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""