#-*- coding:latin-1 -*-
import wikipedia
import urllib
import sys
import pagegenerators
import catlib
import interwiki
def replace1(comment):
comment = comment.replace(u" ",u"%20")
comment = comment.replace(u"é",u"%C3%A9")
comment = comment.replace(u"à",u"%C3%A0")
comment = comment.replace(u"ï",u"%C3%AF")
comment = u'''<span class="plainlinks">[http://toolserver.org/~bayo/intercat.php?'''+comment+u' '
return comment
def main():
biblio = ([u"Article de natation",u"Natation"],
[u"Article de cricket",u"Cricket"],
[u"Article de hockey sur glace",u"Hockey sur glace"],
[u"Article de sports d'hiver",u"Sports d'hiver"],
[u"Article football",u"Football"],
[u"Article ferroviaire",u"Chemin de fer"],
[u"Article sur la Boxe anglaise",u"Boxe anglaise"],
[u"Article Essonne",u"Essonne"],
[u"Article sur la mythologie nordique",u"Mythologie nordique"],
[u"Article baseball",u"Baseball"],
[u"Article de sports d'hiver",u"Sports d'hiver"],
[u"Article de basket-ball",u"Basket-ball"],
[u"Article Juifs et judaïsme",u"Judaïsme"],
[u"Article Colombie",u"Colombie"],
[u"Article Spirou",u"Spirou"],
[u"Article de rugby à XV",u"Rugby à XV"],
[u"Article d'athlétisme",u"Athlétisme"],
[u"Article Essonne",u"Essonne"],
[u"Article sur la mythologie nordique",u"Mythologie nordique"],)
for demande in biblio:
pause = input(u'pause')
theme= demande[0]
projet = demande[1]
site = wikipedia.getSite('fr','wikipedia')
c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10= [],[],[],[],[],[],[],[],[],[],[]
c11,c12,c13,c14,c15,c16,c17,c18,c19,c20= [],[],[],[],[],[],[],[],[],[]
c21,c22,c23,c24,c25,c26,c27,c28,c29,c30= [],[],[],[],[],[],[],[],[],[]
c31,c32,c33,c34,c35,c36,c37,c38,c39,c40= [],[],[],[],[],[],[],[],[],[]
c41,c42,c43,c44,c45,c46,c47,c48= [],[],[],[],[],[],[],[]
cell = (c0, c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c40,c41,c42,c43,c44,c45,c46,c47,c48)
avancementAdQ = u" d'avancement AdQ"
avancementA = u" d'avancement A"
avancementBA = u" d'avancement BA"
avancementB = u" d'avancement B"
avancementBD = u" d'avancement BD"
avancementebauche = u" d'avancement ébauche"
avancementinconnu = u" d'avancement inconnu"
avancement = (avancementAdQ,avancementA,avancementBA,avancementB,avancementBD,avancementebauche,avancementinconnu)
catAdQ = catlib.Category(site, u"Catégorie:"+theme+avancementAdQ)
pageAdQ = catAdQ.articlesList(False)
catA = catlib.Category(site, u"Catégorie:"+theme+avancementA)
pageA = catA.articlesList(False)
catBA = catlib.Category(site, u"Catégorie:"+theme+avancementBA)
pageBA = catBA.articlesList(False)
catB = catlib.Category(site, u"Catégorie:"+theme+avancementB)
pageB = catB.articlesList(False)
catBD = catlib.Category(site, u"Catégorie:"+theme+avancementBD)
pageBD = catBD.articlesList(False)
catebauche = catlib.Category(site, u"Catégorie:"+theme+avancementebauche)
pageebauche = catebauche.articlesList(False)
catinconnu = catlib.Category(site, u"Catégorie:"+theme+avancementinconnu)
pageinconnu = catinconnu.articlesList(False)
pageavancement = (pageAdQ,pageA,pageBA,pageB,pageBD,pageebauche,pageinconnu)
importancemaximum = u" d'importance maximum"
importanceelevee = u" d'importance élevée"
importancemoyenne = u" d'importance moyenne"
importancefaible = u" d'importance faible"
importanceinconnue = u" d'importance inconnue"
importance = (importancemaximum,importanceelevee,importancemoyenne,importancefaible,importanceinconnue)
catmaximum = catlib.Category(site, u"Catégorie:"+theme+importancemaximum)
pagemaximum = catmaximum.articlesList(False)
catelevee = catlib.Category(site, u"Catégorie:"+theme+importanceelevee)
pageelevee = catelevee.articlesList(False)
catmoyenne = catlib.Category(site, u"Catégorie:"+theme+importancemoyenne)
pagemoyenne = catmoyenne.articlesList(False)
catfaible = catlib.Category(site, u"Catégorie:"+theme+importancefaible)
pagefaible = catfaible.articlesList(False)
catinconnue = catlib.Category(site, u"Catégorie:"+theme+importanceinconnue)
pageinconnue = catinconnue.articlesList(False)
pageimportance = (pagemaximum,pageelevee,pagemoyenne,pagefaible,pageinconnue)
for i in range(0,7,1):
for p in pagegenerators.PreloadingGenerator(pageavancement[i],1000):
pagename = p.title()
if p.namespace()==1:
cell[6*(i+1)].append(pagename)
for i in range(0,5,1):
for p in pagegenerators.PreloadingGenerator(pageimportance[i],1000):
pagename = p.title()
if p.namespace()==1:
cell[i+43].append(pagename)
wikipedia.output(u'Intersection des pages')
for i in range(6,43,6):
print i
for c in cell[i]:
if c in c43:
cell[i-5].append(c)
elif c in c44:
cell[i-4].append(c)
elif c in c45:
cell[i-3].append(c)
elif c in c46:
cell[i-2].append(c)
elif c in c47:
cell[i-1].append(c)
else:
wikipedia.output(pagename)
for c in cell:
c = sorted(list(set(c)))
if 1==1:
base = u'''<!-- BEGIN BOT SECTION -->{{Utilisateur:NicDumZ/Eval Detail
| 1 =
| 2 =
| 3 =
| 4 =
| 5 =
| 6 = [[:Catégorie:'''+theme+u''' d'avancement AdQ|{{formatnum:'''+str(len(c6))+u'''}}]]
| 7 =
| 8 =
| 9 =
| 10 =
| 11 =
| 12 = [[:Catégorie:'''+theme+u''' d'avancement A|{{formatnum:'''+str(len(c12))+u'''}}]]
| 13 =
| 14 =
| 15 =
| 16 =
| 17 =
| 18 = [[:Catégorie:'''+theme+u''' d'avancement BA|{{formatnum:'''+str(len(c18))+u'''}}]]
| 19 =
| 20 =
| 21 =
| 22 =
| 23 =
| 24 = [[:Catégorie:'''+theme+u''' d'avancement B|{{formatnum:'''+str(len(c24))+u'''}}]]
| 25 =
| 26 =
| 27 =
| 28 =
| 29 =
| 30 = [[:Catégorie:'''+theme+u''' d'avancement BD|{{formatnum:'''+str(len(c30))+u'''}}]]
| 31 =
| 32 =
| 33 =
| 34 =
| 35 =
| 36 = [[:Catégorie:'''+theme+u''' d'avancement ébauche|{{formatnum:'''+str(len(c36))+u'''}}]]
| 37 =
| 38 =
| 39 =
| 40 =
| 41 =
| 42 = [[:Catégorie:'''+theme+u''' d'avancement inconnu|{{formatnum:'''+str(len(c42))+u'''}}]]
| 43 = [[:Catégorie:'''+theme+u''' d'importance maximum|{{formatnum:'''+str(len(c43))+u'''}}]]
| 44 = [[:Catégorie:'''+theme+u''' d'importance élevée|{{formatnum:'''+str(len(c44))+u'''}}]]
| 45 = [[:Catégorie:'''+theme+u''' d'importance moyenne|{{formatnum:'''+str(len(c45))+u'''}}]]
| 46 = [[:Catégorie:'''+theme+u''' d'importance faible|{{formatnum:'''+str(len(c46))+u'''}}]]
| 47 = [[:Catégorie:'''+theme+u''' d'importance inconnue|{{formatnum:'''+str(len(c47))+u'''}}]]
| 48 = {{formatnum:'''+str(len(c43)+len(c44)+len(c45)+len(c46))+u'''}}
| projet = '''+projet+u'''
}}
<!-- END BOT SECTION -->'''
for i in range(1,42,1):
if len(cell[i])>0 and i%6!=0:
if i%6==1:
importance = importancemaximum
elif i%6==2:
importance = importanceelevee
elif i%6==3:
importance = importancemoyenne
elif i%6==4:
importance = importancefaible
elif i%6==5:
importance = importanceinconnue
if i<7:
avancement = avancementAdQ
elif i<13:
avancement = avancementA
elif i<19:
avancement = avancementBA
elif i<25:
avancement = avancementB
elif i<31:
avancement = avancementBD
elif i<37:
avancement = avancementebauche
elif i<43:
avancement = avancementinconnu
comment = u'''formCat1='''+theme+avancement+u'''&formCat2='''+theme+importance
comment = replace1(comment)
base = base.replace(u'| '+str(i)+u' =',u'| '+str(i)+u' = '+comment + u'{{formatnum:'+str(len(cell[i])) + u'}}]</span>')
page = wikipedia.Page(site, u"Projet:" + projet +u"/Évaluation/Statistiques détaillées")
text = page.get()
debut = text[:text.find(u'<!-- BEGIN BOT SECTION -->')]
fin = text[text.find(u'<!-- END BOT SECTION -->')+24:]
base = debut+base+fin
fz = open(u'Result.txt','w')
#fz.write('#{{a|' + pagename.encode('utf-8') + '}}\n')
fz.write(base.encode('utf-8'))
fz.close()
if len(c6)+len(c12)+len(c18)+len(c24)+len(c30)+len(c36)+len(c42)==len(c43)+len(c44)+len(c45)+len(c46)+len(c47):
wikipedia.showDiff(text, base)
choice = 'u'
choice = wikipedia.inputChoice(u'upload, Skip', [ 'upload', 'Skip' ], ['u', 'S'], 's')
if choice == 'u':
comment = u'Mise à jour des statistiques WP 1.0 (prise en charge temporaire)'
page.put(base,comment)
else:
message = input(u'Erreur de totaux, double evaluation probable')
avancement = c6+c12+c18+c24+c30+c36+c42
importance = c43+c44+c45+c46+c47
print len(avancement), len(importance)
for c in avancement:
if c not in importance:
wikipedia.output(c)
for c in importance:
if c not in avancement:
wikipedia.output(c)
fz = open(u'Result.txt','w')
#fz.write('#{{a|' + pagename.encode('utf-8') + '}}\n')
fz.write(str(sorted(list(importance))).encode('utf-8'))
fz.close()
if __name__ == '__main__':
try:
main()
finally:
wikipedia.stopme()