Désencyclopédie:Top 10 de l'année/2007/script
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