Usuário:Rei-artur/python/statsmicro.py
< Usuário:Rei-artur | python
Como criar[editar | editar código-fonte]
Copie o código (em baixo) e como no notepad, salve o ficheiro com o nome "statsmicro.py" e o ficheiro deve ser salvo na pasta do bot e com a codificação utf-8
Como usar[editar | editar código-fonte]
python statsmicro.py [projecto] [funcao]
Lista de projectos:
alemanha anarquismo anfibios artropodes asia aves astronomia automobilismo bacterias bandas bd brasil caes capitais catolicismo carnaval cinema direitosanimais empresas enxadrismo europa eurovisao evolucao fisica forcasarmadas ginastica geografia hiphop historiamilitar invertebrados lgbt localidades mamiferos mercosul mitologia multiesportivo narnia nobel patrimonio peixes politicos pokemon potter primatas riogrande repteis rock saude segundaguerra unesco virus
Funções:
matriz Actualizar a matriz lista Actualizar a lista e afluentes ao mesmo tempo afluentes Actualizar os afluentes
ex: python statsmicro.py mamiferos matriz ex: python statsmicro.py primatas lista ex: python statsmicro.py repteis afluentes
para gerar para todos os projectos, mas demora muito tempo, nao muito aconselhavel usar
ex: python statsmicro.py all [matriz|lista|afluentes]
Código[editar | editar código-fonte]
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# (C) Rei-artur, 2007-2009
#
# Distributed under the terms of the MIT license.
#
import sys,re,time
import wikipedia,pagegenerators,catlib,config
import urllib,urllib2
import codecs,webbrowser
from time import gmtime,strftime
import socket
import array
projectlist = ['alemanha','anarquismo','anfibios','artropodes','asia','aves','astronomia','automobilismo',
'bandas','bd','brasil',
'caes','capitais','catolicismo','carnaval','cinema','direitosanimais',
'empresas','enxadrismo','europa','eurovisao','evolucao',
'fisica','forcasarmadas',
'ginastica','geografia','hiphop'
'historiamilitar',
'invertebrados',
'lgbt','localidades',
'mamiferos','mercosul','mitologia','multiesportivo',
'narnia','nobel',
'patrimonio','peixes','politicos','pokemon','potter','primatas',
'repteis','riogrande','rock'
'saude','segundaguerra',
'unesco','virus']
msg = {
'alemanha': (u'Alemanha',
u'Alemanha/Marca',
u'',
0,
u'Portal:Alemanha/Matriz',
u'Portal:Alemanha/estatísticas',
u'Portal:Alemanha/afluentes',
2000,
),
'anarquismo': (u'Anarquismo',
u'Anarquismo/Marca',
u'',
0,
u'Portal:Anarquia/Mutirão Anarquista Wikipediano/Predefinição:Matriz dos artigos sobre Anarquismo',
u'Portal:Anarquia/Mutirão Anarquista Wikipediano/estatísticas',
u'Portal:Anarquia/Mutirão Anarquista Wikipediano/afluentes',
2000,
),
'anfibios': (u'anfíbios',
u'Anfíbios/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Anfíbios e Répteis/Anfíbios/matriz',
u'Wikipedia:Projetos/Anfíbios e Répteis/Estatísticas/Anfíbios',
u'Wikipedia:Projetos/Anfíbios e Répteis/Anfíbios/afluentes',
2000,
),
'artropodes': (u'artrópodes',
u'Artrópodes/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Artrópodes/matriz',
u'Wikipedia:Projetos/Artrópodes/Estatísticas',
u'Wikipedia:Projetos/Artrópodes/afluentes',
2000,
),
'asia': (u'Ásia',
u'Ásia/Marca',
u'',
0,
u'Wikipedia:Projetos/Países/Ásia/matriz',
u'Wikipedia:Projetos/Países/Ásia/estatísticas',
u'Wikipedia:Projetos/Países/Ásia/afluentes',
2000,
),
'aves': (u'Aves',
u'Aves/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Aves/matriz',
u'Wikipedia:Projetos/Aves/Estatísticas',
u'Wikipedia:Projetos/Aves/afluentes',
2000,
),
'astronomia': (u'astronomia',
u'Astronomia/Marca',
u'',
0,
u'Wikipedia:Projetos/Astronomia/matriz',
u'Wikipedia:Projetos/Astronomia/lista',
u'Wikipedia:Projetos/Astronomia/afluentes',
2000,
),
'asteroides': (u'asteróides',
u'Asteróide/Marca',
u'Predef',
ur'\{\{Info',
u'Wikipedia:Projetos/Astronomia/Asteróides/matriz',
u'Wikipedia:Projetos/Astronomia/Asteróides/lista',
u'Wikipedia:Projetos/Astronomia/Asteróides/afluentes',
2000,
),
'automobilismo': (u'automobilismo',
u'Automobilismo/Marca',
u'',
0,
u'Wikipedia:Projetos/Automobilismo/matriz',
u'Wikipedia:Projetos/Automobilismo/estatísticas',
u'Wikipedia:Projetos/Automobilismo/afluentes',
2000,
),
'bacterias': (u'bactérias',
u'Bactérias/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Árvore da Vida/Bactérias/matriz',
u'Wikipedia:Projetos/Árvore da Vida/Bactérias/estatísticas',
u'Wikipedia:Projetos/Árvore da Vida/Bactérias/afluentes',
2000,
),
'bandas': (u'bandas',
u'Classificação/Bandas',
u'',
0,
u'Wikipedia:Projetos/Música/Bandas/matriz',
u'Wikipedia:Projetos/Música/Bandas/lista',
u'Wikipedia:Projetos/Música/Bandas/afluentes',
2000,
),
'bd': (u'banda desenhada',
u'Projetobd',
u'',
0,
u'Wikipedia:Projetos/Banda_Desenhada/matriz',
u'Wikipedia:Projetos/Banda_Desenhada/lista',
u'Wikipedia:Projetos/Banda_Desenhada/afluentes',
2000,
),
'brasil': (u'Brasil',
u'Brasil/Marca',
u'',
0,
u'Wikipedia:Projetos/Países/Brasil/matriz',
u'Wikipedia:Projetos/Países/Brasil/lista',
u'Wikipedia:Projetos/Países/Brasil/afluentes',
2000,
),
'caes': (u'cães',
u'Cães/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Cães/matriz',
u'Wikipedia:Projetos/Cães/estatísticas',
u'Wikipedia:Projetos/Cães/afluentes',
2000,
),
'capitais': (u'capitais',
u'Capital/Marca',
u'Predef',
ur'\{\{[Ii]nfo',
u'Wikipedia:Projetos/Capitais/matriz',
u'Wikipedia:Projetos/Capitais/lista',
u'Wikipedia:Projetos/Capitais/afluentes',
2000,
),
'catolicismo': (u'catolicismo',
u'Catolicismo/Marca',
u'',
0,
u'Wikipedia:Projetos/Catolicismo/matriz',
u'Wikipedia:Projetos/Catolicismo/estatísticas',
u'Wikipedia:Projetos/Catolicismo/afluentes',
2000,
),
'cinema': (u'cinema',
u'Cinema/Marca',
u'',
0,
u'Wikipedia:Projetos/Cinema/matriz',
u'Wikipedia:Projetos/Cinema/estatísticas',
u'Wikipedia:Projetos/Cinema/afluentes',
2000,
),
'direitosanimais': (u'direitos animais',
u'Direitos animais/Marca',
u'',
0,
u'Wikipedia:Projetos/Direitos Animais/Matriz',
u'Wikipedia:Projetos/Direitos Animais/estatísticas',
u'Wikipedia:Projetos/Direitos Animais/afluentes',
2000,
),
'carnaval': (u'carnaval',
u'Carnaval/Marca',
u'',
0,
u'Wikipedia:Projetos/Carnaval/matriz',
u'Wikipedia:Projetos/Carnaval/estatísticas',
u'Wikipedia:Projetos/Carnaval/afluentes',
2000,
),
'empresas': (u'empresas',
u'Empresas/Marca',
u'Predef',
ur'\{\{[Ii]nfo',
u'Wikipedia:Projetos/Empresas/matriz',
u'Wikipedia:Projetos/Empresas/lista',
u'Wikipedia:Projetos/Empresas/afluentes',
2000,
),
'enxadrismo': (u'Enxadrismo',
u'Enxadrismo/marca',
u'',
0,
u'Wikipedia:Projetos/Enxadrismo/matriz',
u'Wikipedia:Projetos/Enxadrismo/estatísticas',
u'Wikipedia:Projetos/Enxadrismo/afluentes',
2000,
),
'europa': (u'Europa',
u'Europa/Marca',
u'Pdf',
ur'\{\{[Ii]nfo',
u'Wikipedia:Projetos/Países/Europa/matriz',
u'Wikipedia:Projetos/Países/Europa/estatísticas',
u'Wikipedia:Projetos/Países/Europa/afluentes',
2000,
),
'eurovisao': (u'Eurovisão',
u'Eurovisão/Marca',
u'',
0,
u'Wikipedia:Projetos/Eurovisão/matriz',
u'Wikipedia:Projetos/Eurovisão/estatísticas',
u'Wikipedia:Projetos/Eurovisão/afluentes',
2000,
),
'evolucao': (u'Evolução',
u'Evolução/Marca',
u'',
0,
u'Wikipedia:Projetos/Evolução/Matriz',
u'Wikipedia:Projetos/Evolução/lista',
u'Wikipedia:Projetos/Evolução/afluentes',
2000,
),
'fisica': (u'física',
u'Física/Marca',
u'',
0,
u'Wikipedia:Projetos/Física/matriz',
u'Wikipedia:Projetos/Física/lista',
u'Wikipedia:Projetos/Física/afluentes',
2000,
),
'forcasarmadas': (u'forças armadas',
u'Forças Armadas/Marca',
u'Pdf',
ur'\{\{([Dd]ados|[Ii]nfo)',
u'Wikipedia:Projetos/Forças Armadas/matriz',
u'Wikipedia:Projetos/Forças Armadas/estatísticas',
u'Wikipedia:Projetos/Forças Armadas/afluentes',
2000,
),
'galaxias': (u'galáxias',
u'Galáxia/Marca',
u'Predef',
ur'\{\{[Gg]aláxia',
u'Wikipedia:Projetos/Astronomia/Galáxias/matriz',
u'Wikipedia:Projetos/Astronomia/Galáxias/lista',
u'Wikipedia:Projetos/Astronomia/Galáxias/afluentes',
2000,
),
'geografia': (u'Geografia',
u'Geografia/Marca',
u'',
0,
u'Wikipedia:Projetos/Geografia/matriz',
u'Wikipedia:Projetos/Geografia/estatísticas',
u'Wikipedia:Projetos/Geografia/afluentes',
2000,
),
'ginastica': (u'Ginástica',
u'Ginástica/Marca',
u'',
0,
u'Wikipedia:Projetos/Ginástica/matriz',
u'Wikipedia:Projetos/Ginástica/estatísticas',
u'Wikipedia:Projetos/Ginástica/afluentes',
2000,
),
'hiphop': (u'hip hop',
u'Hip hop/Marca',
u'',
0,
u'Wikipedia:Projetos/Música/Hip hop/matriz',
u'Wikipedia:Projetos/Música/Hip hop/estatísticas',
u'Wikipedia:Projetos/Música/Hip hop/afluentes',
2000,
),
'historiamilitar': (u'história militar',
u'História militar/Marca',
u'Pdf',
ur'\{\{([Dd]ados|[Ii]nfo)',
u'Wikipedia:Projetos/História militar/matriz',
u'Wikipedia:Projetos/História militar/estatísticas',
u'Wikipedia:Projetos/História militar/afluentes',
2000,
),
'invertebrados': (u'invertebrados',
u'Invertebrados/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Invertebrados/matriz',
u'Wikipedia:Projetos/Invertebrados/Estatísticas',
u'Wikipedia:Projetos/Invertebrados/afluentes',
2000,
),
'lgbt': (u'LGBT',
u'LGBT/Marca',
u'',
0,
u'Wikipedia:Projetos/Estudos_LGBT/matriz',
u'Wikipedia:Projetos/Estudos_LGBT/lista',
u'Wikipedia:Projetos/Estudos_LGBT/afluentes',
2000,
),
'localidades': (u'localidades de Portugal',
u'Classificação/Localidades de Portugal',
u'Predef',
ur'\{\{([Ii]nfo|[Dd]ados)',
u'Wikipedia:Projectos/Países/Portugal/Localidades/matriz',
u'Wikipedia:Projectos/Países/Portugal/Localidades/lista',
u'Wikipedia:Projectos/Países/Portugal/Localidades/afluentes',
2000,
),
'mamiferos': (u'mamíferos',
u'Mamíferos/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Mamíferos/matriz',
u'Wikipedia:Projetos/Mamíferos/Estatísticas',
u'Wikipedia:Projetos/Mamíferos/afluentes',
2000,
),
'mercosul': (u'Mercosul',
u'Mercosul/Marca',
u'',
0,
u'Wikipedia:Projetos/Mercosul/matriz',
u'Wikipedia:Projetos/Mercosul/estatísticas',
u'Wikipedia:Projetos/Mercosul/afluentes',
2000,
),
'mitologia': (u'mitologia',
u'Mitologia/Marca',
u'',
0,
u'Wikipedia:Projetos/Mitologia/matriz',
u'Wikipedia:Projetos/Mitologia/estatísticas',
u'Wikipedia:Projetos/Mitologia/afluentes',
2000,
),
'multiesportivo': (u'Eventos multi-esportivos',
u'Eventos multi-esportivos/Marca',
u'Box',
ur'\{\{[Ii]nfo',
u'Wikipedia:Projetos/Eventos multiesportivos/matriz',
u'Wikipedia:Projetos/Eventos multiesportivos/estatísticas',
u'Wikipedia:Projetos/Eventos multiesportivos/afluentes',
2000,
),
'narnia': (u'As Crônicas de Nárnia',
u'As Crônicas de Nárnia/Marca',
u'',
0,
u'Wikipedia:Projetos/As Crônicas de Nárnia/matriz',
u'Wikipedia:Projetos/As Crônicas de Nárnia/estatísticas',
u'Wikipedia:Projetos/As Crônicas de Nárnia/afluentes',
2000,
),
'nobel': (u'Nobel',
u'Nobel/Marca',
u'',
0,
u'Wikipedia:Projetos/Nobel/matriz',
u'Wikipedia:Projetos/Nobel/lista',
u'Wikipedia:Projetos/Nobel/afluentes',
2000,
),
'patrimonio': (u'património de Portugal',
u'Classificação/Património de Portugal',
u'Predef',
ur'\{\{[Ii]nfo/Castelo',
u'Wikipedia:Projectos/Países/Portugal/Património/matriz',
u'Wikipedia:Projectos/Países/Portugal/Património/lista',
u'Wikipedia:Projectos/Países/Portugal/Património/afluentes',
2000,
),
'peixes': (u'peixes',
u'Peixes/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Peixes/matriz',
u'Wikipedia:Projetos/Peixes/lista',
u'Wikipedia:Projetos/Peixes/afluentes',
2000,
),
'politicos': (u'políticos',
u'Políticos/Marca',
u'Pdf',
ur'\{\{[Pp]olítico',
u'Wikipedia:Projetos/Biografias/Políticos/matriz',
u'Wikipedia:Projetos/Biografias/Políticos/estatísticas',
u'Wikipedia:Projetos/Biografias/Políticos/afluentes',
2000,
),
'pokemon': (u'pokémon',
u'Pokémon/Marca',
u'Pdf',
ur'\{\{[Pp]olítico',
u'Wikipedia:Projetos/Pokémon/matriz',
u'Wikipedia:Projetos/Pokémon/estatísticas',
u'Wikipedia:Projetos/Pokémon/afluentes',
2000,
),
'potter': (u'Harry Potter',
u'Harry Potter/Marca',
u'',
0,
u'Wikipedia:Projetos/Harry Potter/matriz',
u'Wikipedia:Projetos/Harry Potter/estatísticas',
u'Wikipedia:Projetos/Harry Potter/afluentes',
2000,
),
'plantas': (u'plantas',
u'Plantas/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Plantas/matriz',
u'Wikipedia:Projetos/Plantas/lista',
u'Wikipedia:Projetos/Plantas/afluentes',
2000,
),
'primatas': (u'primatas',
u'Primatas/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Primatas/matriz',
u'Wikipedia:Projetos/Primatas/Estatísticas',
u'Wikipedia:Projetos/Primatas/afluentes',
2000,
),
'repteis': (u'répteis',
u'Répteis/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Anfíbios e Répteis/Répteis/matriz',
u'Wikipedia:Projetos/Anfíbios e Répteis/Estatísticas/Répteis',
u'Wikipedia:Projetos/Anfíbios e Répteis/Répteis/afluentes',
2000,
),
'rock': (u'rock',
u'Rock/Marca',
u'',
0,
u'Wikipedia:Projetos/Música/Rock/matriz',
u'Wikipedia:Projetos/Música/Rock/Estatísticas',
u'Wikipedia:Projetos/Música/Rock/afluentes',
2000,
),
'riogrande': (u'Rio Grande do Sul',
u'Rio Grande do Sul/Marca',
u'',
0,
u'Portal:Rio Grande do Sul/matriz',
u'Portal:Rio Grande do Sul/Estatísticas',
u'Portal:Rio Grande do Sul/afluentes',
2000,
),
'saude': (u'saúde',
u'Saúde/Marca',
u'',
0,
u'Wikipedia:Projetos/Saúde/matriz',
u'Wikipedia:Projetos/Saúde/lista',
u'Wikipedia:Projetos/Saúde/afluentes',
2000,
),
'segundaguerra': (u'Segunda Guerra Mundial',
u'Segunda Guerra Mundial/Marca',
u'',
0,
u'Predefinição:Segunda Guerra Mundial/Matriz',
u'Portal:Segunda Guerra Mundial/estatísticas',
u'Portal:Segunda Guerra Mundial/afluentes',
2000,
),
'virus': (u'vírus',
u'Vírus/Marca',
u'Tax',
ur'\{\{[Tt]axo(caixa|box)',
u'Wikipedia:Projetos/Árvore da Vida/Vírus/matriz',
u'Wikipedia:Projetos/Árvore da Vida/Vírus/estatísticas',
u'Wikipedia:Projetos/Árvore da Vida/Vírus/afluentes',
2000,
),
'unesco': (u'património Mundial da UNESCO',
u'Património Mundial da UNESCO/Marca',
u'',
ur'\{\{[Pp]atrimónio',
u'Wikipedia:Projetos/Património Mundial da UNESCO/matriz',
u'Wikipedia:Projetos/Património Mundial da UNESCO/lista',
u'Wikipedia:Projetos/Património Mundial da UNESCO/afluentes',
2000,
),
}
def matriz(projectlist):
project = sys.argv[1]
if project != "all":
projectlist = []
projectlist.insert(0, project)
for project in projectlist:
sobre = wikipedia.translate(project, msg)[0]
predefs_class = wikipedia.translate(project, msg)[1]
titpredefs_lista = wikipedia.translate(project, msg)[2]
predefs_lista = wikipedia.translate(project, msg)[3]
salvar_matriz = wikipedia.translate(project, msg)[4]
salvar_lista = wikipedia.translate(project, msg)[5]
salvar_artigo = wikipedia.translate(project, msg)[6]
minimo = wikipedia.translate(project, msg)[7]
wikipedia.output( u"\n\n" )
soma = 0
q5i0 = 0
q5i1 = 0
q5i2 = 0
q5i3 = 0
q5i4 = 0
q4i0 = 0
q4i1 = 0
q4i2 = 0
q4i3 = 0
q4i4 = 0
q3i0 = 0
q3i1 = 0
q3i2 = 0
q3i3 = 0
q3i4 = 0
q2i0 = 0
q2i1 = 0
q2i2 = 0
q2i3 = 0
q2i4 = 0
q1i0 = 0
q1i1 = 0
q1i2 = 0
q1i3 = 0
q1i4 = 0
q0i0 = 0
q0i1 = 0
q0i2 = 0
q0i3 = 0
q0i4 = 0
site=wikipedia.Site('pt','wikipedia')
sp=wikipedia.Page(site,u"Template:"+predefs_class)
gen = pagegenerators.ReferringPageGenerator(sp,followRedirects=True,onlyTemplateInclusion=True)
gen = pagegenerators.NamespaceFilterPageGenerator(gen,[1])
preloadingGen = pagegenerators.PreloadingGenerator(gen, pageNumber = 50)
for page in preloadingGen:
url = 'http://pt.wikipedia.org/w/api.php?action=query&titles=%s&generator=categories' % (page.urlname())
try:
socket.setdefaulttimeout(20)
url = urllib2.urlopen(url)
except urllib2.URLError, (err):
time.sleep(30)
socket.setdefaulttimeout(20)
url = urllib2.urlopen(url)
url = url.read()
url = unicode(url, 'utf-8')
soma = soma + 1
cat1 = u"qualidade 1 sobre %s" % (sobre)
cat2 = u"qualidade 2 sobre %s" % (sobre)
cat3 = u"qualidade 3 sobre %s" % (sobre)
cat4 = u"qualidade 4 sobre %s" % (sobre)
cat5 = u"qualidade 5 sobre %s" % (sobre)
if cat1 in url:
qualidade = 1
elif cat2 in url:
qualidade = 2
elif cat3 in url:
qualidade = 3
elif cat4 in url:
qualidade = 4
elif cat5 in url:
qualidade = 5
else:
qualidade = 0
cat1 = u"importância 1 sobre %s" % (sobre)
cat2 = u"importância 2 sobre %s" % (sobre)
cat3 = u"importância 3 sobre %s" % (sobre)
cat4 = u"importância 4 sobre %s" % (sobre)
if cat1 in url:
importancia = 1
elif cat2 in url:
importancia = 2
elif cat3 in url:
importancia = 3
elif cat4 in url:
importancia = 4
else:
importancia = 0
wikipedia.output( u"# \03{lightred}Q = %s\03{default} \03{lightgreen}I = %s\03{default} -> [[%s]] " % (qualidade,importancia,page.title()) )
if qualidade == 0:
if importancia == 0:
q0i0 = q0i0 + 1
if importancia == 1:
q0i1 = q0i1 + 1
if importancia == 2:
q0i2 = q0i2 + 1
if importancia == 3:
q0i3 = q0i3 + 1
if importancia == 4:
q0i4 = q0i4 + 1
if qualidade == 1:
if importancia == 0:
q1i0 = q1i0 + 1
if importancia == 1:
q1i1 = q1i1 + 1
if importancia == 2:
q1i2 = q1i2 + 1
if importancia == 3:
q1i3 = q1i3 + 1
if importancia == 4:
q1i4 = q1i4 + 1
if qualidade == 2:
if importancia == 0:
q2i0 = q2i0 + 1
if importancia == 1:
q2i1 = q2i1 + 1
if importancia == 2:
q2i2 = q2i2 + 1
if importancia == 3:
q2i3 = q2i3 + 1
if importancia == 4:
q2i4 = q2i4 + 1
if qualidade == 3:
if importancia == 0:
q3i0 = q3i0 + 1
if importancia == 1:
q3i1 = q3i1 + 1
if importancia == 2:
q3i2 = q3i2 + 1
if importancia == 3:
q3i3 = q3i3 + 1
if importancia == 4:
q3i4 = q3i4 + 1
if qualidade == 4:
if importancia == 0:
q4i0 = q4i0 + 1
if importancia == 1:
q4i1 = q4i1 + 1
if importancia == 2:
q4i2 = q4i2 + 1
if importancia == 3:
q4i3 = q4i3 + 1
if importancia == 4:
q4i4 = q4i4 + 1
if qualidade == 5:
if importancia == 0:
q5i0 = q5i0 + 1
if importancia == 1:
q5i1 = q5i1 + 1
if importancia == 2:
q5i2 = q5i2 + 1
if importancia == 3:
q5i3 = q5i3 + 1
if importancia == 4:
q5i4 = q5i4 + 1
saida=u""
saida+=u"{{Matriz da Classificação\n"
saida+=u"| %s | %s | %s | %s | %s\n" % (q5i4,q5i3,q5i2,q5i1,q5i0)
saida+=u"| %s | %s | %s | %s | %s\n" % (q4i4,q4i3,q4i2,q4i1,q4i0)
saida+=u"| %s | %s | %s | %s | %s\n" % (q3i4,q3i3,q3i2,q3i1,q3i0)
saida+=u"| %s | %s | %s | %s | %s\n" % (q2i4,q2i3,q2i2,q2i1,q2i0)
saida+=u"| %s | %s | %s | %s | %s\n" % (q1i4,q1i3,q1i2,q1i1,q1i0)
saida+=u"| %s | %s | %s | %s | %s\n" % (q0i4,q0i3,q0i2,q0i1,q0i0)
saida+=u"|sobre=%s\n" % sobre
saida+=u"}}\n"
saida+=u"<small>'''última actualização''': ~~~~~</small>\n"
wikipedia.output( u"\n\n\03{lightyellow}Foram verificados %s artigos\03{default}" % (soma) )
sp=wikipedia.Page(site,salvar_matriz)
texto = sp.get()
if u"###" in texto:
antes = texto.split(u'<!-- ### inicio ### -->')[0]
fim = texto.split(u'<!-- ### fim ### -->')[1]
saida = antes + u'<!-- ### inicio ### -->' + saida + u'\n<!-- ### fim ### -->' + fim
comentario= u"Bot: Actualizar matriz (analizados %s artigos)" % (soma)
sp.put(saida,comment=comentario, minorEdit=False)
def cor(tam,rango=[500,1000,2000,5000,8000,10000,15000,20000,30000,50000]):
if tam < rango[0]:
tam_s='bgcolor="#ff0000" | %d' % (tam)
elif tam < rango[1]:
tam_s='bgcolor="#ff3000" | %d' % (tam)
elif tam < rango[2]:
tam_s='bgcolor="#ff6000" | %d' % (tam)
elif tam < rango[3]:
tam_s='bgcolor="#ff9000" | %d' % (tam)
elif tam < rango[4]:
tam_s='bgcolor="#ffc000" | %d' % (tam)
elif tam < rango[5]:
tam_s='bgcolor="#ffff00" | %d' % (tam)
elif tam < rango[6]:
tam_s='bgcolor="#ccff00" | %d' % (tam)
elif tam < rango[7]:
tam_s='bgcolor="#99ff00" | %d' % (tam)
elif tam < rango[8]:
tam_s='bgcolor="#66ff00" | %d' % (tam)
elif tam < rango[9]:
tam_s='bgcolor="#33ff00" | %d' % (tam)
else:
tam_s='bgcolor="#00ff00" | %d' % (tam)
return tam_s
def tabelacores(titulo=u"Código de cores",rango=[500,1000,2000,5000,8000,10000,15000,20000,30000,50000]):
saida=u""
saida+=u"{| style=\"font-size:85%;\" {{prettytable}}\n"
saida+=u"|+ '''%s'''\n" % (titulo)
saida+=u"! Cor\n"
saida+=u"! Escala (bytes)\n"
saida+=u"|-\n"
saida+=u"| bgcolor=\"#ff0000\"| || 0-%d\n" % (rango[0])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#ff3000\"| || %d-%d\n" % (rango[0]+1,rango[1])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#ff6000\"| || %d-%d\n" % (rango[1]+1,rango[2])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#ff9000\"| || %d-%d\n" % (rango[2]+1,rango[3])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#ffc000\"| || %d-%d\n" % (rango[3]+1,rango[4])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#ffff00\"| || %d-%d\n" % (rango[4]+1,rango[5])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#ccff00\"| || %d-%d\n" % (rango[5]+1,rango[6])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#99ff00\"| || %d-%d\n" % (rango[6]+1,rango[7])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#66ff00\"| || %d-%d\n" % (rango[7]+1,rango[8])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#33ff00\"| || %d-%d\n" % (rango[8]+1,rango[9])
saida+=u"|-\n"
saida+=u"| bgcolor=\"#00ff00\"| || >%d\n" % (rango[9]+1)
saida+=u"|}\n\n"
return saida
def lista(projectlist):
project = sys.argv[1]
if project != "all":
projectlist = []
projectlist.insert(0, project)
projectlist.sort()
for project in projectlist:
sobre = wikipedia.translate(project, msg)[0]
predefs_class = wikipedia.translate(project, msg)[1]
titpredefs_lista = wikipedia.translate(project, msg)[2]
predefs_lista = wikipedia.translate(project, msg)[3]
salvar_matriz = wikipedia.translate(project, msg)[4]
salvar_lista = wikipedia.translate(project, msg)[5]
salvar_artigo = wikipedia.translate(project, msg)[6]
minimo = wikipedia.translate(project, msg)[7]
saida_lista=u""
saida_artigo=u""
wikipedia.output( u"\n\n" )
saida_lista+=u"{| class=\"prettytable sortable\" style=\"font-size:85%;\"\n"
saida_lista+=u"! width=\"400\" | Artigo\n"
saida_lista+=u"! Tamanho\n"
saida_lista+=u"! Img\n"
saida_lista+=u"! Iws\n"
saida_lista+=u"! %s\n" % (titpredefs_lista)
saida_lista+=u"! [[Imagem:LinkFA-star.png]]\n"
site=wikipedia.Site('pt','wikipedia')
sp=wikipedia.Page(site,u"Template:"+predefs_class)
gen = pagegenerators.ReferringPageGenerator(sp,followRedirects=True,onlyTemplateInclusion=True)
gen = pagegenerators.NamespaceFilterPageGenerator(gen,[1])
preloadingGen = pagegenerators.PreloadingGenerator(gen, pageNumber = 50)
for page in preloadingGen:
talk = page.title()
title = page.titleWithoutNamespace()
page = wikipedia.Page(wikipedia.getSite(), title)
if page.isRedirectPage():
continue
saida_artigo+=u"\n[[%s]] | " % (talk)
texto = page.get()
tam = len(texto)
wikipedia.output( u">>> \03{lightpurple}%s\03{default} <<<" % (title) )
imagem="n"
if re.search(ur"\.(jpg|JPG|jpeg|JPEG|png|gif)",texto):
imagem="s"
interwiki="n"
if len(page.interwiki())>0:
interwiki="s"
if predefs_lista == 0:
pdf=""
else:
pdf="n"
if re.search(predefs_lista,texto):
pdf="s"
destaque=""
if re.search(ur"\{\{[Aa]rtigo[ _]destacado\}\}",texto):
destaque="*"
saida_lista+=u"|--\n| [[%s]] || %s || %s || %s || %s || %s " % (title,cor(tam),imagem,interwiki,pdf,destaque)
saida_lista+=u"\n"
saida_lista+=u"|}\n"
saida_lista+=u"<small>'''última actualização''': ~~~~~</small>\n"
saida_lista+=tabelacores(titulo=u"Código de cores")
sp=wikipedia.Page(site,salvar_lista)
texto = sp.get()
if u"###" in texto:
antes = texto.split(u'<!-- ### inicio ### -->')[0]
fim = texto.split(u'<!-- ### fim ### -->')[1]
saida_lista= antes + u'<!-- ### inicio ### -->' + saida_lista + u'\n<!-- ### fim ### -->' + fim
sp.put(saida_lista,comment=u"Bot: Actualizar lista", minorEdit= False)
sp=wikipedia.Page(site,salvar_artigo)
texto = sp.get()
if u"###" in texto:
antes = texto.split(u'<!-- ### inicio ### -->')[0]
fim = texto.split(u'<!-- ### fim ### -->')[1]
saida_artigo= antes + u'<!-- ### inicio ### -->' + saida_artigo + u'\n<!-- ### fim ### -->' + fim
sp.put(saida_artigo,comment=u"Bot: Actualizar lista", minorEdit= False)
def afluentes(projectlist):
project = sys.argv[1]
if project != "all":
projectlist = []
projectlist.insert(0, project)
projectlist.sort()
for project in projectlist:
sobre = wikipedia.translate(project, msg)[0]
predefs_class = wikipedia.translate(project, msg)[1]
titpredefs_lista = wikipedia.translate(project, msg)[2]
predefs_lista = wikipedia.translate(project, msg)[3]
salvar_matriz = wikipedia.translate(project, msg)[4]
salvar_lista = wikipedia.translate(project, msg)[5]
salvar_artigo = wikipedia.translate(project, msg)[6]
minimo = wikipedia.translate(project, msg)[7]
saida_artigo=u""
wikipedia.output( u"\n\n" )
site=wikipedia.Site('pt','wikipedia')
sp=wikipedia.Page(site,u"Template:"+predefs_class)
gen = pagegenerators.ReferringPageGenerator(sp,followRedirects=True,onlyTemplateInclusion=True)
gen = pagegenerators.NamespaceFilterPageGenerator(gen,[1])
preloadingGen = pagegenerators.PreloadingGenerator(gen, pageNumber = 50)
for page in preloadingGen:
talk = page.title()
if page.isRedirectPage():
continue
saida_artigo+=u"\n[[%s]] | " % (talk)
wikipedia.output( u">>> \03{lightpurple}%s\03{default} <<<" % (talk) )
sp=wikipedia.Page(site,salvar_artigo)
texto = sp.get()
if u"###" in texto:
antes = texto.split(u'<!-- ### inicio ### -->')[0]
fim = texto.split(u'<!-- ### fim ### -->')[1]
saida_artigo= antes + u'<!-- ### inicio ### -->' + saida_artigo + u'\n<!-- ### fim ### -->' + fim
sp.put(saida_artigo,comment=u"Bot: Actualizar lista", minorEdit= False)
if __name__ == "__main__":
try:
project = None
accao = None
print """
Lista de projectos:
alemanha
anarquismo
anfibios
artropodes
asia
aves
astronomia
automobilismo
bacterias
bandas
bd
brasil
caes
capitais
catolicismo
carnaval
cinema
direitosanimais
empresas
enxadrismo
europa
eurovisao
evolucao
fisica
forcasarmadas
ginastica
geografia
hiphop
historiamilitar
invertebrados
lgbt
localidades
mamiferos
mercosul
mitologia
multiesportivo
narnia
nobel
patrimonio
peixes
politicos
pokemon
potter
primatas
riogrande
repteis
rock
saude
segundaguerra
unesco
virus
Funções:
matriz Actualizar a matriz
lista Actualizar a lista e afluentes ao mesmo tempo
afluentes Actualizar os afluentes
ex: python statsmicro.py mamiferos matriz
ex: python statsmicro.py mamiferos lista
ex: python statsmicro.py mamiferos afluentes
para gerar para todos os projectos, mas demora muito tempo, nao muito aconselhavel usar
ex: python statsmicro.py all [matriz|lista|afluentes]
"""
accao = sys.argv[2]
if accao=="matriz":
matriz(projectlist)
if accao=="lista":
lista(projectlist)
if accao=="afluentes":
afluentes(projectlist)
finally:
wikipedia.stopme()