Désencyclopédie:Top 10 de l'année/2007/script

Un article de la désencyclopédie.
Aller à la navigation Aller à la recherche
# -*- coding: utf-8 -*-
from xml.dom.minidom import parse

doc = parse('2007.htm')

articles = {}
article2author = {
u'Comment détruire le Monde' : 'autre',
u'Comment hamstérer les enfants de son tueur' : 'Marie Irène',
u'Comment se faire toucher la chatte ?' : 'Marie Irène',
u'Comment tuer deux pierres avec un oiseau' : 'Thaumasnot',
u'Comment tuer le hamster de ses enfants' : 'Thaumasnot',
u'Confédération paysanne' : 'Darwinner',
u'Critères d\'impérialité romaine' : 'Ulysse-Henry',
u'DÉ-sencyclopédie' : 'Supierre',
u'Démonstration' : 'Darwinner',
u'Film X' : 'Ulysse-Henry',
u'Footix' : 'autre',
u'Guide de la cybermaternité 2008' : 'Thaumasnot',
u'GTA IV : Pouilly-le-vieux' : 'Marie Irène',
u'Génie' : 'Zalibus',
u'I know speak in english' : 'Marie Irène',
u'Idée' : 'Thaumasnot',
u'Index des noms à la con' : 'P.Paoli',
u'Je hais les jambons cuits' : 'Supierre',
u'John Locke' : 'autre',
u'La Naissance du Roi Arthur' : 'Marie Irène',
u'La Vacquerie-et-Saint-Martin-de-Castries' : 'Zalibus',
u'La poursuite du siècle' : 'COROCORE',
u'Le garçon qui vote "Nullissime"' : 'Marie Irène',
u'Les Dangers de l\'Internet' : 'Supierre',
u'Les flops de Désencyclopédie' : 'Thaumasnot',
u'Les slogans des marques de céréales' : 'Thaumasnot',
u'Levallois-Perret' : 'autre',
u'Mole' : 'autre',
u'Morpion' : 'Thaumasnot',
u'Mygale débile' : 'Thaumasnot',
u'Ninja' : 'autre',
u'Novembre' : 'Supierre',
u'Paradis' : 'Marie Irène',
u'Pays de la Loire' : 'autre',
u'Peinture' : 'Ulysse-Henry',
u'Pifomètre' : 'autre',
u'Poisson rouge' : 'Darwinner',
u'Pomme de terre négative' : 'Ulysse-Henry',
u'Qu\'est-ce t\'as dit doigt à l\'ail ?' : 'autre',
u'Roumain' : 'autre',
u'Singe Darwin pour les Nuls' : 'autre',
u'Super coach tout puissant' : 'COROCORE',
u'Supposition idiote' : 'Supierre',
u'Tapis volant de souris' : 'Thaumasnot',
u'Tecktonik' : 'autre',
u'Théâtre' : 'Ulysse-Henry',
u'Une page de détente' : 'Marie Irène',
u'Valais' : 'autre',
u'Valter Birsa' : 'autre',
u'Vosgiens' : 'autre',
u'Voyage astral' : 'Zalibus',
u'Voyage dans le temps' : 'Ulysse-Henry',
u'Église Norrisienne' : 'autre',
u'Électricité' : 'Marie Irène',
u'Éponyme' : 'autre',
}
authors = {}
authorsOccurrences = {}

for list in doc.getElementsByTagName('ol'):
	points = 100
	for item in list.getElementsByTagName('li'):
		title = item.getElementsByTagName('a').item(0).getAttribute('title')
		if (not(title in articles)): articles[title] = 0
		articles[title] += points
		author = article2author[title]
		if (not(author in authors)):
			authors[author] = 0
			authorsOccurrences[author] = 0
		authors[author] += points
		authorsOccurrences[author] += 1
		points -= 10

from operator import itemgetter

for title,points in sorted(articles.items(), key=itemgetter(1), reverse=True):
	print ':# [[' + title + ']]  <small>', points,  '</small>'

print '********** CLASSEMENT QUALITE DES AUTEURS ***********'
for author,points in sorted(authors.items(), key=itemgetter(1), reverse=True):
	print ':#[[Utilisateur:' +  author + '|' + author + ']]  <small>', points,  '</small>'
print '********** CLASSEMENT QUANTITE DES AUTEURS ***********'
for author,points in sorted(authorsOccurrences.items(), key=itemgetter(1), reverse=True):
	print ':#', author, points
print '********** CLASSEMENT QUALITE/QUANTITE DES AUTEURS ***********'
qq = dict([(k, authors[k] / authorsOccurrences[k]) for k in authors.keys()])

for author,points in sorted(qq.items(), key=itemgetter(1), reverse=True):
	print ':#', author, points