]> gitweb.pimeys.fr Git - bots/deconnaisseur.git/commitdiff
deconnaisseur en dépôt git, c'est quand même mieux :)
authorDeconnaisseur le bot IRC <deconnaisseur@cerebro.crans.org>
Tue, 1 May 2012 17:19:09 +0000 (19:19 +0200)
committerDeconnaisseur le bot IRC <deconnaisseur@cerebro.crans.org>
Tue, 1 May 2012 17:19:09 +0000 (19:19 +0200)
.gitignore [new file with mode: 0644]
backup/deconnaissances.acoeur.txt [new file with mode: 0644]
backup/deconnaissances.crans.txt [new file with mode: 0644]
backup/dummy/deconnaissances.acoeur.txt [new file with mode: 0644]
backup/dummy/deconnaissances.crans.txt [new file with mode: 0644]
backup/dummy/deconnaisseur.py [new file with mode: 0755]
deconnaissances.acoeur.txt [new file with mode: 0644]
deconnaissances.crans.txt [new file with mode: 0644]
deconnaisseur.py [new file with mode: 0755]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..a57fd2e
--- /dev/null
@@ -0,0 +1,31 @@
+# Custom #
+###################
+*~
+
+# Compiled source #
+###################
+*.pyc
+
+# Packages #
+############
+# it's better to unpack these files and commit the raw source
+# git has its own built in compression methods
+*.7z
+*.dmg
+*.gz
+*.iso
+*.jar
+*.rar
+*.tar
+*.zip
+
+# Logs #
+######################
+*.log
+
+# OS generated files #
+######################
+.DS_Store*
+*ehthumbs.db
+Icon?
+*Thumbs.db
diff --git a/backup/deconnaissances.acoeur.txt b/backup/deconnaissances.acoeur.txt
new file mode 100644 (file)
index 0000000..71d97f9
--- /dev/null
@@ -0,0 +1,139 @@
+%
+Littérature : Marguerite plantigrade
+Hadrien
+Marguerite ours noir
+Marguerite ours noir
+5
+%
+Écrivain: encouragement à un âne
+Lettres de mon moulin
+Allez(,| !|) fonce( !|) baudet
+Allez fonce baudet
+5
+%
+Acteur : David pend
+Elephant Man
+David Lynche
+David Lynche
+5
+%
+Chanteuse : Fruit exotique de Chantal
+Enfants
+Chantal goyave
+Chantal goyave
+6
+%
+Musique: La missive à cathédrale
+Beethoven
+La lettre à église
+La lettre à église
+5
+%
+Personnalité T.V. : Étienne remue
+TF1
+Étienne Bougeotte
+Étienne Bougeotte
+5
+%
+Jeu T.V. : Des additions et des kilos de liquide
+Armand Jammot
+Des chiffres et des litres
+Des chiffres et des litres
+5
+%
+Personnage de film : caillou qui cogne le serpent de plume
+c'est aussi le sixième film
+Roc qui bat le boa
+Roc qui bat le boa
+5
+%
+Politique : Fantômas la brosse à cheveux
+FN
+Jean Marais le peigne
+Jean Marais le peigne
+5
+%
+Film : La cage aux petits flacons de verre
+Edouard Molinaro
+La cage aux fioles
+La cage aux fioles
+6
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Sylvester slalome
+Sylvester slalome
+6
+%
+Architecture : Pas si moche, sculpture peinture et musique évacuent du bois par tous les orifices
+Pour un peu plus que des évèques
+Pas laid art chie et pisse copeaux
+Pas laid art chie et pisse copeaux
+6
+%
+Actrice : Les 6 cochons de Simone
+Le chat
+Simone 6 gorets
+Simone 6 gorets
+6
+%
+Expression : les flatulences de femme qui possède des chiens
+on est dessous dans une situation difficile ou dangereuse
+Les pets de dame aux clebs
+Les pets de dame aux clebs
+6
+%
+Supers-héros : Déesse de la Lune époustouflante
+Dr. Doom
+Hécate Fantastique
+Hécate Fantastique
+6
+%
+Chanteuse : La paysanne moche
+Lauret Boutonnat
+Vilaine fermière
+Vilaine fermière
+6
+%
+Recette de cuisine : Désaccord entre palmipèdes
+
+conflit de canards
+conflit de canards
+6
+%
+Chanteur : Le Michel qui a pris beaucoup de poissons
+Laurette
+Michel belle pêche
+Michel belle pêche
+6
+%
+Géographie : Les îles du doigt infecté
+Espagne
+Les îles panaris
+Les îles panaris
+6
+%
+People: Pauvre Hotel de Luxe
+
+Pas riche Hilton
+Pas riche Hilton
+6
+%
+Film : fourmi se trompe
+James Cameron
+Termite a tort
+Termite a tort
+6
+%
+Lieu : Le tunnel des voitures saisies
+Lyon
+Le tunnel de fourrière
+Le tunnel de fourrière
+6
+%
+Gastronomie : Démange un dos asiatique
+Avec des pommes de terre
+Gratte un dos chinois
+Gratte un dos chinois
+6
+%
\ No newline at end of file
diff --git a/backup/deconnaissances.crans.txt b/backup/deconnaissances.crans.txt
new file mode 100644 (file)
index 0000000..ffb856a
--- /dev/null
@@ -0,0 +1,229 @@
+%
+Proverbe : J'étais amoureux d'un vieux gendarme en moto
+Agissez au lieu de ne rien faire
+Vieux motard que j'aimais
+Vieux motard que j'aimais
+0
+%
+Jeu T.V. : Questions antipelliculaires
+FR3
+Questions pour un shampooing
+Questions pour un shampooing
+0
+%
+Chanson : Elle a l'essieu de velours
+Luis Mariano
+La bielle de Cadix
+La bielle de Cadix
+0
+%
+Monument : Le tour de badge
+Italie
+La tour de pin's
+La tour de pin's
+0
+%
+Fleur : La moitié d'Amadeus
+Nice
+(Le |)mi(-| )Mozart
+Le mi-Mozart
+0
+%
+Chanteur : Jules qui nettoie le pare-brise
+Espagnol
+Julio essuie(-| )glace
+Julio essuie-glace
+0
+%
+Fable : La plante grimpante et la fille à la scoliose
+Rien ne sert de courir
+Le lierre et la tordue
+Le lierre et la tordue
+0
+%
+Acteur : Christophe vertébré
+Le sicilien
+Christophe lombaire
+Christophe lombaire
+0
+%
+Scientifique : Un Victor au prénom de vive controverse
+Pôle nord
+Polémique Victor
+Polémique Victor
+0
+%
+Chanson : C'est mieux que de prendre la Cicciolina
+Ray Ventura
+Ça vaut mieux que d'attraper la star latine
+Ça vaut mieux que d'attraper la star latine
+0
+%
+Gastronomie : La noix d'alligator
+Fruit exotique
+La noix de croco
+La noix de croco
+0
+%
+Chanson : Ne me fais pas boire
+Jacques Brel
+Ne me cuite pas
+Ne me cuite pas
+0
+%
+Œuvre musicale : L'instrument de musique en travaux
+Amadeus
+La flûte en chantier
+La flûte en chantier
+0
+%
+Événement historique : Les contribuables de la Marne
+Bataille de 14 - 18
+Les taxés de la Marne
+Les taxés de la Marne
+1
+%
+Personnalité T.V. : Arrête de remuer Étienne
+TF1
+Étienne Bougeotte
+Étienne Bougeotte
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Sylvester slalome
+Sylvester slalome
+0
+%
+Lieu : Tunnel des voitures saisies
+Lyon
+Le tunnel de fourrière
+Le tunnel de fourrière
+0
+%
+Film : La cage aux petits flacons de verre
+Edouard Molinaro
+La cage aux fioles
+La cage aux fioles
+0
+%
+Jeu T.V. : Des additions et des kilos de liquide
+Armand Jammot
+Des chiffres et des litres
+Des chiffres et des litres
+0
+%
+Chanteur : Le Michel qui a pris beaucoup de poissons
+Laurette
+Michel belle pêche
+Michel belle pêche
+0
+%
+Actrice : Les 6 cochons de Simone
+Le chat
+Simone 6 gorets
+Simone 6 gorets
+0
+%
+Chanteuse : Fruit exotique de Chantal
+Enfants
+Chantal goyave
+Chantal goyave
+0
+%
+Politique : Fantômas la brosse à cheveux
+FN
+Jean Marais le peigne
+Jean Marais le peigne
+0
+%
+Personnage de film : caillou qui cogne le serpent de plume
+c'est aussi le sixième film
+Roc qui bat le boa
+Roc qui bat le boa
+0
+%
+Acteur : David pend
+Elephant Man
+David Lynche
+David Lynche
+0
+%
+Film : fourmi se trompe
+James Cameron
+Termite a tort
+Termite a tort
+0
+%
+Supers-héros : Déesse de la Lune époustouflante
+Dr. Doom
+Hécate Fantastique
+Hécate Fantastique
+0
+%
+Littérature : Marguerite plantigrade
+Hadrien
+Marguerite ours noir
+Marguerite ours noir
+0
+%
+People: Pauvre Hotel de Luxe
+
+Pas riche Hilton
+Pas riche Hilton
+0
+%
+Architecture : Pas si moche, sculpture peinture et musique évacuent du bois par tous les orifices
+Pour un peu plus que des évèques
+Pas laid art chie et pisse copaux
+Pas laid art chie et pisse copaux
+0
+%
+Expression : les flatulences de la femme qui possède des chiens
+on est dessous dans une situation difficile ou dangereuse
+Les pets de la dame aux clebs
+Les pets de la dame aux clebs
+0
+%
+Écrivain: encouragement à un âne
+Lettres de mon moulin
+Allez(,| !|) fonce( !|) baudet
+Allez fonce Baudet
+0
+%
+Musique: La missive à cathédrale
+Beethoven
+La lettre à église
+La lettre à église
+1
+%
+Bande dessinée : Le sceptre de bus
+Tintin
+Le sceptre d'autocar
+Le sceptre d'autocar
+1
+%
+Chanteuse : La paysanne moche
+Lauret Boutonnat
+Vilaine fermière
+Vilaine fermière
+1
+%
+Gastronomie : Démange un dos asiatique
+Avec des pommes de terre
+Gratte un dos chinois
+Gratte un dos chinois
+1
+%
+Épreuve sportive : Le rallye automobile préféré des Vikings
+Thierry Sabine
+Paris drakkar
+Paris drakkar
+1
+%
+Recette de cuisine : Désaccord entre palmipèdes
+
+conflit de canards
+conflit de canards
+1
+%
\ No newline at end of file
diff --git a/backup/dummy/deconnaissances.acoeur.txt b/backup/dummy/deconnaissances.acoeur.txt
new file mode 100644 (file)
index 0000000..4ea5a5d
--- /dev/null
@@ -0,0 +1,859 @@
+%
+Homme célèbre : Ah ! Les confiseries et les quarante brigands
+Sésame ouvre-toi
+Ah( !|) Les bonbons et les quarante voleurs
+Ah ! Les bonbons et les quarante voleurs
+0
+%
+Écrivain: encouragement à un âne
+Lettres de mon moulin
+Allez(,| !|) fonce( !|) baudet
+Allez fonce baudet
+0
+%
+Chanteur : Bébert le crustacé
+Pour le plaisir
+Bébert le homard
+Bébert le homard
+0
+%
+Chanson : Le chevreau c'est terminé
+Hervé Vilard
+Cabri c'est fini
+Cabri c'est fini
+0
+%
+Personnage historique : Tisane des machines à moudre
+Guillotiné avec Danton
+Camomille des moulins
+Camomille des moulins
+0
+%
+Ville : Case pour litières de blessés
+Maroc
+Case à brancards
+Case à brancards
+0
+%
+Chanteuse : Chantal fruit exotique
+Enfants
+Chantal goyave
+Chantal goyave
+0
+%
+Chanson : Le mort fait tous les plis au bridge
+Francis Cabrel
+Chelem à mourir
+Chelem à mourir
+0
+%
+Acteur : Christophe le vertébré
+Le sicilien
+Christophe lombaire
+Christophe lombaire
+0
+%
+Profession : Mâle de la poule décédé
+Pompes funèbres
+Coq mort
+Coq mort
+0
+%
+Pays : Costume apéritif
+San José
+Costard Ricard
+Costard Ricard
+0
+%
+Profession : Réparateur de toit à bicyclette
+Petite reine
+Couvreur cycliste
+Couvreur cycliste
+0
+%
+Acteur : David pend
+Elephant Man
+David Lynche
+David Lynche
+0
+%
+Jeu T.V. : Des additions et des kilos de liquide
+Armand Jammot
+Des chiffres et des litres
+Des chiffres et des litres
+0
+%
+Série T.V. : Deux policiers américains qui ont faim
+Floride
+Deux flics à miam-miam
+Deux flics à miam-miam
+0
+%
+Chanteur : Didier chanteur celte de Tripoli
+Il faut laisser le temps au temps
+Didier barde libyen
+Didier barde libyen
+0
+%
+Présentatrice T.V. : Cajolée
+Enfants
+Dorlotée
+Dorlotée
+0
+%
+Chanteuse : Le riz d'Edith
+Marcel
+Edith Pilaf
+Edith Pilaf
+0
+%
+Chanteur : Le roi du rock américain se dépêche
+Love me tender
+Elvis pressé
+Elvis pressé
+0
+%
+Écrivain : Ernest qui a quitté son pays
+Nobel 1954
+Ernest émigré
+Ernest émigré
+0
+%
+Homme politique : Fidèle à sa marque d'huile automobile
+La Havane
+Fidèle Castrol
+Fidèle Castrol
+0
+%
+Chanteur : Chanteur du sud-ouest en Renault 4
+Sarbacane
+Francis 4L
+Francis 4L
+0
+%
+Homme politique : Georges proclame en sautant
+Le Tigre
+Georges clame en saut
+Georges clame en saut
+0
+%
+Chanteur : Georges bière couleur de treillis
+Barbe
+Georges mousse kaki
+Georges mousse kaki
+0
+%
+Gastronomie : Démange un dos asiatique
+Avec des pommes de terre
+Gratte un dos chinois
+Gratte un dos chinois
+0
+%
+Acteur : Égale 4
+Cyrano de Bergerac
+Gérard deux par deux
+Gérard deux par deux
+0
+%
+Ville : Tragédie des rongeurs domestiques
+Port hollandais
+Hamster drame
+Hamster drame
+0
+%
+Supers-héros : Déesse de la Lune époustouflante
+Dr. Doom
+Hécate Fantastique
+Hécate Fantastique
+0
+%
+Villes japonaises : Mao-Tsé-Toung et sac de voyage pour la neige
+Bombe atomique
+Héros chinois et bagage à ski
+Héros chinois et bagage à ski
+0
+%
+Pays : L'homme sera la femme
+Tel Aviv
+Il sera elle
+Il sera elle
+0
+%
+Politique : Fantômas la brosse à cheveux
+FN
+Jean Marais le peigne
+Jean Marais le peigne
+0
+%
+Cinéaste : Le gros aiguillon de Jean-Luc
+La chinoise
+Jean-Luc gros dard
+Jean-Luc gros dard
+0
+%
+Actur : Jean-Paul, enlève la peau sur mes coups de soleil
+Les magnifiques
+Jean-Paul pèle mon dos
+Jean-Paul pèle mon dos
+0
+%
+Présentateur T.V. : Les couches-culottes de Julien
+FR3
+Julien Pampers
+Julien Pampers
+0
+%
+Chanteur : Jules qui nettoie le pare-brise
+Espagnol
+Julio essuie(-| )glace(|s)
+Julio essuie-glace
+0
+%
+Marque publicitaire : Seulement un chinois
+Y'a pas d'heure pour en manger
+Juste un bridé
+Juste un bridé
+0
+%
+Pays : Pouvez-vous me dire où se trouve l'Arabie
+Riyad
+L'Arabie c'est où dîtes ?
+L'Arabie c'est où dîtes ?
+0
+%
+Film : La première île d'exil de Napoléon ou le pays des banques
+Claude Zidi
+L'Elbe ou la Suisse
+L'Elbe ou la Suisse
+0
+%
+Événement historique : Le couvent des porcs
+Conflit USA - Cuba
+L'abbaye des cochons
+L'abbaye des cochons
+0
+%
+Monument : L'insecte de Westminster
+Londres
+L'abeille de Westminster
+L'abeille de Westminster
+0
+%
+Chanson : Il est baissé devant le pianiste
+Michel Berger
+L'accroupi du pianiste
+L'accroupi du pianiste
+0
+%
+Littérature : L'amant de les dix rouleaux de ruban adhésif
+David Lawrence
+L'amant de les dix chattertons
+L'amant de les dix chattertons
+0
+%
+Œuvre musicale : Il apprend les sources
+Paul Dukas
+L'apprenti sourcier
+L'apprenti sourcier
+0
+%
+Pays : Le petit de l'autruche grise
+Habsbourg
+L'autruchon gris
+L'autruchon gris
+0
+%
+Chanson : Les chinois l'idolâtrent
+Johnny Hallyday
+L'idole des jaunes
+L'idole des jaunes
+0
+%
+Médecine chirurgicale : L'opération des potes de Capone
+Gorge
+L'opération des amis d'Al
+L'opération des amis d'Al
+0
+%
+Événement annuel : L'ouverture du bâton sur lequel montent des bergers landais
+En septembre
+L'ouverture de l'échasse
+L'ouverture de l'échasse
+0
+%
+Géographie : L'articulation du bras au dos à l'opposé du sud
+Arctique
+L'épaule nord
+L'épaule nord
+0
+%
+Événement historique : Bataille dans la piscine avec un ballon
+Défaite de Napoléon Premier
+La bataille de water(-| )polo
+La bataille de water-polo
+0
+%
+Chanson : Elle a l'essieu de velours
+Luis Mariano
+La bielle de Cadix
+La bielle de Cadix
+0
+%
+Film : La cage aux petits flacons de verre
+Edouard Molinaro
+La cage aux fioles
+La cage aux fioles
+0
+%
+Astronomie : L'étoile filante des motos américaines
+Comète
+La comète des Harley(|s)
+La comète des Harley
+0
+%
+Chanson : La danse des idiots
+Coin coin
+La danse des connards
+La danse des connards
+0
+%
+Œuvre musicale : L\instrument de musique en travaux
+Amadeus
+La flûte en chantier
+La flûte en chantier
+0
+%
+Géographie : La pomme de terre belge du sud
+Le Cap
+La frite du sud
+La frite du sud
+0
+%
+Œuvre architecturale : Massacre place Tien-An-Men
+Mur
+La grande mitraille de Chine
+La grande mitraille de Chine
+0
+%
+Musique: La missive à cathédrale
+Beethoven
+La lettre à église
+La lettre à église
+0
+%
+Film : On verse de l'eau dans une bouteille à travers la mariée
+Jeanne Moreau
+La mariée est entonnoir
+La mariée est entonnoir
+0
+%
+Gastronomie : La noix d'alligator
+Fruit exotique
+(La |)noix de croco
+La noix de croco
+0
+%
+Chanson : La poupée qui petit drapeau
+Michel Polnareff
+La poupée qui fanion
+La poupée qui fanion
+0
+%
+Lieu : La balade des morceaux de bœuf
+Nice
+La promenade des onglets
+La promenade des onglets
+0
+%
+Monument : La tour de badge
+Italie
+La tour de pin's
+La tour de pin's
+0
+%
+Sculpture : Sa locomotive a gagné
+Louvre
+La victoire de sa motrice
+La victoire de sa motrice
+0
+%
+Profession : Boisson russe pour vous défendre
+Justice
+La vodka de la défense
+La vodka de la défense
+0
+%
+Œuvre musicale : Belle bicyclette d'un compositeur classique
+Maurice Ravel
+Le beau vélo de Ravel
+Le beau vélo de Ravel
+0
+%
+Sport : Une haie tous les centièmes de mètre
+Guy Drut
+Le centimètre haie(s|)
+Le centimètre haies
+0
+%
+Scientifique : Il commande et va au lit de bonne heure
+Bonnet rouge
+Le commandant couche( |-)tôt
+Le commandant couche tôt
+0
+%
+Événement sportif : Le four d'hypnose
+Course cycliste
+Le four de transe
+Le four de transe
+0
+%
+Société secrète : Le clan des clowns
+Cagoule
+Le gugusse clan
+Le gugusse clan
+0
+%
+Fable : La plante grimpante et la fille à la scoliose
+Rien ne sert de courir
+Le lierre et la tordue
+Le lierre et la tordue
+0
+%
+Fleur : La moitié d'Amadeus
+Nice
+Le mi(-| )Mozart
+Le mi-Mozart
+0
+%
+Lieu : Frontière d'enchanteur entre l'est et l'ouest
+Porte de Brandenburg
+Le mur de Merlin
+Le mur de Merlin
+0
+%
+Lieu : Le mur de l'épicerie
+Jérusalem
+Le mur de l'alimentation
+Le mur de l'alimentation
+0
+%
+Bande dessinée : Le sceptre de bus
+Tintin
+Le sceptre d'autocar
+Le sceptre d'autocar
+0
+%
+Monument : La basilique au sucre
+Montmartre
+Le sucré cœur
+Le sucré cœur
+0
+%
+Événement sportif : Le tour d'une écriture particulière
+Cyclisme
+Le tour d'italique
+Le tour d'italique
+0
+%
+Lieu : Le tunnel des voitures saisies
+Lyon
+Le tunnel de fourrière
+Le tunnel de fourrière
+0
+%
+Événement sportif : 24 arabes au pays des rillettes
+Course automobile
+Les (24|vingt-quatre) beurs du Mans
+Les 24 beurs du Mans
+0
+%
+Animaux : Les briquets potables
+Mammifères des fleuves
+Les Zippos potables
+Les Zippos potables
+0
+%
+Film : Les cafés à cochonnes de Cherbourg
+Jacques Demy
+Les bars à truies de Cherbourg
+Les bars à truies de Cherbourg
+0
+%
+Spécialité : Instruments de musique de Cuba
+Partent en fumé
+Les cithares de la Havane
+Les cithares de la Havane
+0
+%
+Chanson : Les gifles d'une région d'Irlande
+Michel Sardou
+Les claques du Connemara
+Les claques du Connemara
+0
+%
+Chanson : Les potes ne sont pas à tribord
+Georges Brassens
+Les copains babord
+Les copains babord
+0
+%
+Département : Les deux femelles du bouc
+Niort
+Les deux chèvres
+Les deux chèvres
+0
+%
+Roman : Les dix arbres canadiens de Victor Hugo
+Cosette
+Les dix érables
+Les dix érables
+0
+%
+Série T.V. : Fromages d'Alsace de l'ouest
+Robert Conrad
+Les munsters de l'ouest
+Les munsters de l'ouest
+0
+%
+Expression : les flatulences de femme qui possède des chiens
+on est dessous dans une situation difficile ou dangereuse
+Les pets de dame aux cleb(|')s
+Les pets de dame aux clebs
+0
+%
+Événement historique : Les contribuables de la Marne
+Bataille de 14 - 18
+Les taxés de la Marne
+Les taxés de la Marne
+0
+%
+Roman : Le trio anti-moustiques
+Alexandre Dumas
+Les trois moustiquaires
+Les trois moustiquaires
+0
+%
+Géographie : Les îles du doigt infecté
+Espagne
+Les îles panaris
+Les îles panaris
+0
+%
+Femme politique : Filet de canard en pile de chairs
+Ministre anglais
+Magret de tas de chairs
+Magret de tas de chairs
+0
+%
+Écrivain : En voiture Marcel
+Provence
+Marcel bagnole
+Marcel bagnole
+0
+%
+Littérature : Marguerite plantigrade
+Hadrien
+Marguerite ours noir
+Marguerite ours noir
+0
+%
+Film : Rencontres sportive à l'abri du soleil
+Michel Blanc
+Match à l'ombre
+Match à l'ombre
+0
+%
+Roman : Damné stylo
+Baleine
+Maudit Bic
+Maudit Bic
+0
+%
+Chanteur : Le Michel qui a pris beaucoup de poissons
+Laurette
+Michel belle pêche
+Michel belle pêche
+0
+%
+Acteur : Attention à l'épouse du fils, Michel
+Le gendarme de Saint-Tropez
+Michel gare à la bru
+Michel gare à la bru
+0
+%
+Film : Membre amputé des eaux fraîches
+Marcel Pagnol
+Moignon des sources
+Moignon des sources
+0
+%
+Ville : Grimper rapidement et en hauteur
+Capitale d'Amérique du Sud
+Monter vite et haut
+Monter vite et haut
+0
+%
+Gastronomie : Wolfgang Amadeus est ici
+Fromage
+Mozart est là
+Mozart est là
+0
+%
+Personnage historique : Empereur arbre fruitier
+Corse
+Napoléon pommier
+Napoléon pommier
+0
+%
+Série T.V. : Commissaire d'agneau
+Roger Hanin
+Navarin
+Navarin
+0
+%
+Roman : SS dans le RER
+Raymond Queneau
+Nazi dans le métro
+Nazi dans le métro
+0
+%
+Chanson : Ne me fais pas boire
+Jacques Brel
+Ne me cuite pas
+Ne me cuite pas
+0
+%
+Peintre : C'est Pablo de manger dans le plat des autres
+Espagne
+Pablo pique-assiette
+Pablo pique-assiette
+0
+%
+Épreuve sportive : Le rallye automobile préféré des Vikings
+Thierry Sabine
+Paris drakkar
+Paris drakkar
+0
+%
+Architecture : Pas si moche, sculpture peinture et musique évacuent du bois par tous les orifices
+Pour un peu plus que des évèques
+Pas laid art chie et pisse copeaux
+Pas laid art chie et pisse copeaux
+0
+%
+People: Pauvre Hotel de Luxe
+
+Pas riche Hilton
+Pas riche Hilton
+0
+%
+Chanteur : Patrick Belge
+J'attends Lola
+Patrick Bruxelles
+Patrick Bruxelles
+0
+%
+Présentateur T.V. : Patrick n'a pas besoin de porte-jarretelles
+C'est fou
+Patrick ses bas s'tiennent
+Patrick ses bas s'tiennent
+0
+%
+Poète : Paul tisane
+Les sanglots longs
+Paul verveine
+Paul verveine
+0
+%
+Chanson : Outils de jardinage, outils de jardinage, outils de jardinage
+Claude François
+Pelles, pelles, pelles
+Pelles, pelles, pelles
+0
+%
+Roman : Déclivité à outil de plâtrier
+Rabelais
+Pente à truelle
+Pente à truelle
+0
+%
+Chanson : Arbre du bord des routes pour moi
+Plastic Bertrand
+Platane pour moi
+Platane pour moi
+0
+%
+Gastronomie : Philosophe grec de fromages
+Avant le dessert
+Platon de fromages
+Platon de fromages
+0
+%
+Scientifique : Un Victor au prénom de vive controverse
+Pôle nord
+Polémique Victor
+Polémique Victor
+0
+%
+Événement historique : Papa travaille la terre
+Victoire japonaise en 1941
+Père laboure
+Père laboure
+0
+%
+Jeu T.V. : Questions antipelliculaires
+FR3
+Questions pour un shampooing
+Questions pour un shampooing
+0
+%
+Personnage de film : caillou qui cogne le serpent
+c'est aussi le sixième film
+Roc qui bat le boa
+Roc qui bat le boa
+0
+%
+Pièce de la maison : Président irakien, chef-lieu du Maine-et-Loire
+On y mange
+Saddam Angers
+Saddam Angers
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Silvester slalome
+Silvester slalome
+0
+%
+Actrice : Les 6 cochons de Simone
+Le chat
+Simone (6|six) gorets
+Simone 6 gorets
+0
+%
+Actrice : Bout de Sophie
+La boum
+Sophie morceau
+Sophie morceau
+0
+%
+Commerce : Arrêt punition
+Essence
+Station sévice
+Station sévice
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Sylvester slalome
+Sylvester slalome
+0
+%
+Film : fourmi se trompe
+James Cameron
+Termite a tort
+Termite a tort
+0
+%
+Ville : Le mâle de ta chèvre tousse
+Mali
+Ton bouc tousse
+Ton bouc tousse
+0
+%
+Ville : Très coûteux nos accumulateurs d'énergie
+Catastrophe nucléaire
+Très chères nos piles
+Très chères nos piles
+0
+%
+Corps d'armée : Tu te barres d'ici c'est ma plage
+Militaires noirs
+Tu t'tires ailleurs c'est mes galets
+Tu t'tires ailleurs c'est mes galets
+0
+%
+Ustensile audio-visuel : Télé indien
+Pour zapper
+Télé commanche
+Télé commanche
+0
+%
+Objet : deux petites dunes
+Sur le nez
+Une paire de dunettes
+Une paire de dunettes
+0
+%
+Ville : Valide vos réserves
+URSS
+Valide vos stocks
+Valide vos stocks
+0
+%
+Pays : Venez vous amuser ici
+Caracas
+Venez jouer là
+Venez jouer là
+0
+%
+Personnage historique : Primate vert célère dans l'histoire
+Alésia
+Vert singe historique
+Vert singe historique
+0
+%
+Proverbe : J'étais amoureux d'un vieux gendarme en moto
+Agissez au lieu de ne rien faire
+Vieux motard que j'aimais
+Vieux motard que j'aimais
+0
+%
+Chanteuse : La paysanne moche
+Lauret Boutonnat
+Vilaine fermière
+Vilaine fermière
+0
+%
+Marque publicitaire : Cassoulet pour crocodile
+Conserves
+William saurien
+William saurien
+0
+%
+Film : Le super tube de Pierre Perret devient femme de l'empereur
+
+Zizi impératrice
+Zizi impératrice
+0
+%
+Recette de cuisine : Désaccord entre palmipèdes
+
+conflit de canards
+conflit de canards
+0
+%
+Chanson : C'est mieux que de prendre la Cicciolina
+Ray Ventura
+Ça vaut mieux que d'attraper la star latine
+Ça vaut mieux que d'attraper la star latine
+0
+%
+Établissement scolaire : École des surveillants pieds nus
+Ingénieurs
+École des pions déchaussés
+École des pions déchaussés
+0
+%
+Chanteuse : Fête des rois mages de principauté
+Ouragan
+Épiphanie de Monaco
+Épiphanie de Monaco
+0
+%
+Personnalité T.V. : Étienne remue
+TF1
+Étienne Bougeotte
+Étienne Bougeotte
+0
+%
diff --git a/backup/dummy/deconnaissances.crans.txt b/backup/dummy/deconnaissances.crans.txt
new file mode 100644 (file)
index 0000000..4ea5a5d
--- /dev/null
@@ -0,0 +1,859 @@
+%
+Homme célèbre : Ah ! Les confiseries et les quarante brigands
+Sésame ouvre-toi
+Ah( !|) Les bonbons et les quarante voleurs
+Ah ! Les bonbons et les quarante voleurs
+0
+%
+Écrivain: encouragement à un âne
+Lettres de mon moulin
+Allez(,| !|) fonce( !|) baudet
+Allez fonce baudet
+0
+%
+Chanteur : Bébert le crustacé
+Pour le plaisir
+Bébert le homard
+Bébert le homard
+0
+%
+Chanson : Le chevreau c'est terminé
+Hervé Vilard
+Cabri c'est fini
+Cabri c'est fini
+0
+%
+Personnage historique : Tisane des machines à moudre
+Guillotiné avec Danton
+Camomille des moulins
+Camomille des moulins
+0
+%
+Ville : Case pour litières de blessés
+Maroc
+Case à brancards
+Case à brancards
+0
+%
+Chanteuse : Chantal fruit exotique
+Enfants
+Chantal goyave
+Chantal goyave
+0
+%
+Chanson : Le mort fait tous les plis au bridge
+Francis Cabrel
+Chelem à mourir
+Chelem à mourir
+0
+%
+Acteur : Christophe le vertébré
+Le sicilien
+Christophe lombaire
+Christophe lombaire
+0
+%
+Profession : Mâle de la poule décédé
+Pompes funèbres
+Coq mort
+Coq mort
+0
+%
+Pays : Costume apéritif
+San José
+Costard Ricard
+Costard Ricard
+0
+%
+Profession : Réparateur de toit à bicyclette
+Petite reine
+Couvreur cycliste
+Couvreur cycliste
+0
+%
+Acteur : David pend
+Elephant Man
+David Lynche
+David Lynche
+0
+%
+Jeu T.V. : Des additions et des kilos de liquide
+Armand Jammot
+Des chiffres et des litres
+Des chiffres et des litres
+0
+%
+Série T.V. : Deux policiers américains qui ont faim
+Floride
+Deux flics à miam-miam
+Deux flics à miam-miam
+0
+%
+Chanteur : Didier chanteur celte de Tripoli
+Il faut laisser le temps au temps
+Didier barde libyen
+Didier barde libyen
+0
+%
+Présentatrice T.V. : Cajolée
+Enfants
+Dorlotée
+Dorlotée
+0
+%
+Chanteuse : Le riz d'Edith
+Marcel
+Edith Pilaf
+Edith Pilaf
+0
+%
+Chanteur : Le roi du rock américain se dépêche
+Love me tender
+Elvis pressé
+Elvis pressé
+0
+%
+Écrivain : Ernest qui a quitté son pays
+Nobel 1954
+Ernest émigré
+Ernest émigré
+0
+%
+Homme politique : Fidèle à sa marque d'huile automobile
+La Havane
+Fidèle Castrol
+Fidèle Castrol
+0
+%
+Chanteur : Chanteur du sud-ouest en Renault 4
+Sarbacane
+Francis 4L
+Francis 4L
+0
+%
+Homme politique : Georges proclame en sautant
+Le Tigre
+Georges clame en saut
+Georges clame en saut
+0
+%
+Chanteur : Georges bière couleur de treillis
+Barbe
+Georges mousse kaki
+Georges mousse kaki
+0
+%
+Gastronomie : Démange un dos asiatique
+Avec des pommes de terre
+Gratte un dos chinois
+Gratte un dos chinois
+0
+%
+Acteur : Égale 4
+Cyrano de Bergerac
+Gérard deux par deux
+Gérard deux par deux
+0
+%
+Ville : Tragédie des rongeurs domestiques
+Port hollandais
+Hamster drame
+Hamster drame
+0
+%
+Supers-héros : Déesse de la Lune époustouflante
+Dr. Doom
+Hécate Fantastique
+Hécate Fantastique
+0
+%
+Villes japonaises : Mao-Tsé-Toung et sac de voyage pour la neige
+Bombe atomique
+Héros chinois et bagage à ski
+Héros chinois et bagage à ski
+0
+%
+Pays : L'homme sera la femme
+Tel Aviv
+Il sera elle
+Il sera elle
+0
+%
+Politique : Fantômas la brosse à cheveux
+FN
+Jean Marais le peigne
+Jean Marais le peigne
+0
+%
+Cinéaste : Le gros aiguillon de Jean-Luc
+La chinoise
+Jean-Luc gros dard
+Jean-Luc gros dard
+0
+%
+Actur : Jean-Paul, enlève la peau sur mes coups de soleil
+Les magnifiques
+Jean-Paul pèle mon dos
+Jean-Paul pèle mon dos
+0
+%
+Présentateur T.V. : Les couches-culottes de Julien
+FR3
+Julien Pampers
+Julien Pampers
+0
+%
+Chanteur : Jules qui nettoie le pare-brise
+Espagnol
+Julio essuie(-| )glace(|s)
+Julio essuie-glace
+0
+%
+Marque publicitaire : Seulement un chinois
+Y'a pas d'heure pour en manger
+Juste un bridé
+Juste un bridé
+0
+%
+Pays : Pouvez-vous me dire où se trouve l'Arabie
+Riyad
+L'Arabie c'est où dîtes ?
+L'Arabie c'est où dîtes ?
+0
+%
+Film : La première île d'exil de Napoléon ou le pays des banques
+Claude Zidi
+L'Elbe ou la Suisse
+L'Elbe ou la Suisse
+0
+%
+Événement historique : Le couvent des porcs
+Conflit USA - Cuba
+L'abbaye des cochons
+L'abbaye des cochons
+0
+%
+Monument : L'insecte de Westminster
+Londres
+L'abeille de Westminster
+L'abeille de Westminster
+0
+%
+Chanson : Il est baissé devant le pianiste
+Michel Berger
+L'accroupi du pianiste
+L'accroupi du pianiste
+0
+%
+Littérature : L'amant de les dix rouleaux de ruban adhésif
+David Lawrence
+L'amant de les dix chattertons
+L'amant de les dix chattertons
+0
+%
+Œuvre musicale : Il apprend les sources
+Paul Dukas
+L'apprenti sourcier
+L'apprenti sourcier
+0
+%
+Pays : Le petit de l'autruche grise
+Habsbourg
+L'autruchon gris
+L'autruchon gris
+0
+%
+Chanson : Les chinois l'idolâtrent
+Johnny Hallyday
+L'idole des jaunes
+L'idole des jaunes
+0
+%
+Médecine chirurgicale : L'opération des potes de Capone
+Gorge
+L'opération des amis d'Al
+L'opération des amis d'Al
+0
+%
+Événement annuel : L'ouverture du bâton sur lequel montent des bergers landais
+En septembre
+L'ouverture de l'échasse
+L'ouverture de l'échasse
+0
+%
+Géographie : L'articulation du bras au dos à l'opposé du sud
+Arctique
+L'épaule nord
+L'épaule nord
+0
+%
+Événement historique : Bataille dans la piscine avec un ballon
+Défaite de Napoléon Premier
+La bataille de water(-| )polo
+La bataille de water-polo
+0
+%
+Chanson : Elle a l'essieu de velours
+Luis Mariano
+La bielle de Cadix
+La bielle de Cadix
+0
+%
+Film : La cage aux petits flacons de verre
+Edouard Molinaro
+La cage aux fioles
+La cage aux fioles
+0
+%
+Astronomie : L'étoile filante des motos américaines
+Comète
+La comète des Harley(|s)
+La comète des Harley
+0
+%
+Chanson : La danse des idiots
+Coin coin
+La danse des connards
+La danse des connards
+0
+%
+Œuvre musicale : L\instrument de musique en travaux
+Amadeus
+La flûte en chantier
+La flûte en chantier
+0
+%
+Géographie : La pomme de terre belge du sud
+Le Cap
+La frite du sud
+La frite du sud
+0
+%
+Œuvre architecturale : Massacre place Tien-An-Men
+Mur
+La grande mitraille de Chine
+La grande mitraille de Chine
+0
+%
+Musique: La missive à cathédrale
+Beethoven
+La lettre à église
+La lettre à église
+0
+%
+Film : On verse de l'eau dans une bouteille à travers la mariée
+Jeanne Moreau
+La mariée est entonnoir
+La mariée est entonnoir
+0
+%
+Gastronomie : La noix d'alligator
+Fruit exotique
+(La |)noix de croco
+La noix de croco
+0
+%
+Chanson : La poupée qui petit drapeau
+Michel Polnareff
+La poupée qui fanion
+La poupée qui fanion
+0
+%
+Lieu : La balade des morceaux de bœuf
+Nice
+La promenade des onglets
+La promenade des onglets
+0
+%
+Monument : La tour de badge
+Italie
+La tour de pin's
+La tour de pin's
+0
+%
+Sculpture : Sa locomotive a gagné
+Louvre
+La victoire de sa motrice
+La victoire de sa motrice
+0
+%
+Profession : Boisson russe pour vous défendre
+Justice
+La vodka de la défense
+La vodka de la défense
+0
+%
+Œuvre musicale : Belle bicyclette d'un compositeur classique
+Maurice Ravel
+Le beau vélo de Ravel
+Le beau vélo de Ravel
+0
+%
+Sport : Une haie tous les centièmes de mètre
+Guy Drut
+Le centimètre haie(s|)
+Le centimètre haies
+0
+%
+Scientifique : Il commande et va au lit de bonne heure
+Bonnet rouge
+Le commandant couche( |-)tôt
+Le commandant couche tôt
+0
+%
+Événement sportif : Le four d'hypnose
+Course cycliste
+Le four de transe
+Le four de transe
+0
+%
+Société secrète : Le clan des clowns
+Cagoule
+Le gugusse clan
+Le gugusse clan
+0
+%
+Fable : La plante grimpante et la fille à la scoliose
+Rien ne sert de courir
+Le lierre et la tordue
+Le lierre et la tordue
+0
+%
+Fleur : La moitié d'Amadeus
+Nice
+Le mi(-| )Mozart
+Le mi-Mozart
+0
+%
+Lieu : Frontière d'enchanteur entre l'est et l'ouest
+Porte de Brandenburg
+Le mur de Merlin
+Le mur de Merlin
+0
+%
+Lieu : Le mur de l'épicerie
+Jérusalem
+Le mur de l'alimentation
+Le mur de l'alimentation
+0
+%
+Bande dessinée : Le sceptre de bus
+Tintin
+Le sceptre d'autocar
+Le sceptre d'autocar
+0
+%
+Monument : La basilique au sucre
+Montmartre
+Le sucré cœur
+Le sucré cœur
+0
+%
+Événement sportif : Le tour d'une écriture particulière
+Cyclisme
+Le tour d'italique
+Le tour d'italique
+0
+%
+Lieu : Le tunnel des voitures saisies
+Lyon
+Le tunnel de fourrière
+Le tunnel de fourrière
+0
+%
+Événement sportif : 24 arabes au pays des rillettes
+Course automobile
+Les (24|vingt-quatre) beurs du Mans
+Les 24 beurs du Mans
+0
+%
+Animaux : Les briquets potables
+Mammifères des fleuves
+Les Zippos potables
+Les Zippos potables
+0
+%
+Film : Les cafés à cochonnes de Cherbourg
+Jacques Demy
+Les bars à truies de Cherbourg
+Les bars à truies de Cherbourg
+0
+%
+Spécialité : Instruments de musique de Cuba
+Partent en fumé
+Les cithares de la Havane
+Les cithares de la Havane
+0
+%
+Chanson : Les gifles d'une région d'Irlande
+Michel Sardou
+Les claques du Connemara
+Les claques du Connemara
+0
+%
+Chanson : Les potes ne sont pas à tribord
+Georges Brassens
+Les copains babord
+Les copains babord
+0
+%
+Département : Les deux femelles du bouc
+Niort
+Les deux chèvres
+Les deux chèvres
+0
+%
+Roman : Les dix arbres canadiens de Victor Hugo
+Cosette
+Les dix érables
+Les dix érables
+0
+%
+Série T.V. : Fromages d'Alsace de l'ouest
+Robert Conrad
+Les munsters de l'ouest
+Les munsters de l'ouest
+0
+%
+Expression : les flatulences de femme qui possède des chiens
+on est dessous dans une situation difficile ou dangereuse
+Les pets de dame aux cleb(|')s
+Les pets de dame aux clebs
+0
+%
+Événement historique : Les contribuables de la Marne
+Bataille de 14 - 18
+Les taxés de la Marne
+Les taxés de la Marne
+0
+%
+Roman : Le trio anti-moustiques
+Alexandre Dumas
+Les trois moustiquaires
+Les trois moustiquaires
+0
+%
+Géographie : Les îles du doigt infecté
+Espagne
+Les îles panaris
+Les îles panaris
+0
+%
+Femme politique : Filet de canard en pile de chairs
+Ministre anglais
+Magret de tas de chairs
+Magret de tas de chairs
+0
+%
+Écrivain : En voiture Marcel
+Provence
+Marcel bagnole
+Marcel bagnole
+0
+%
+Littérature : Marguerite plantigrade
+Hadrien
+Marguerite ours noir
+Marguerite ours noir
+0
+%
+Film : Rencontres sportive à l'abri du soleil
+Michel Blanc
+Match à l'ombre
+Match à l'ombre
+0
+%
+Roman : Damné stylo
+Baleine
+Maudit Bic
+Maudit Bic
+0
+%
+Chanteur : Le Michel qui a pris beaucoup de poissons
+Laurette
+Michel belle pêche
+Michel belle pêche
+0
+%
+Acteur : Attention à l'épouse du fils, Michel
+Le gendarme de Saint-Tropez
+Michel gare à la bru
+Michel gare à la bru
+0
+%
+Film : Membre amputé des eaux fraîches
+Marcel Pagnol
+Moignon des sources
+Moignon des sources
+0
+%
+Ville : Grimper rapidement et en hauteur
+Capitale d'Amérique du Sud
+Monter vite et haut
+Monter vite et haut
+0
+%
+Gastronomie : Wolfgang Amadeus est ici
+Fromage
+Mozart est là
+Mozart est là
+0
+%
+Personnage historique : Empereur arbre fruitier
+Corse
+Napoléon pommier
+Napoléon pommier
+0
+%
+Série T.V. : Commissaire d'agneau
+Roger Hanin
+Navarin
+Navarin
+0
+%
+Roman : SS dans le RER
+Raymond Queneau
+Nazi dans le métro
+Nazi dans le métro
+0
+%
+Chanson : Ne me fais pas boire
+Jacques Brel
+Ne me cuite pas
+Ne me cuite pas
+0
+%
+Peintre : C'est Pablo de manger dans le plat des autres
+Espagne
+Pablo pique-assiette
+Pablo pique-assiette
+0
+%
+Épreuve sportive : Le rallye automobile préféré des Vikings
+Thierry Sabine
+Paris drakkar
+Paris drakkar
+0
+%
+Architecture : Pas si moche, sculpture peinture et musique évacuent du bois par tous les orifices
+Pour un peu plus que des évèques
+Pas laid art chie et pisse copeaux
+Pas laid art chie et pisse copeaux
+0
+%
+People: Pauvre Hotel de Luxe
+
+Pas riche Hilton
+Pas riche Hilton
+0
+%
+Chanteur : Patrick Belge
+J'attends Lola
+Patrick Bruxelles
+Patrick Bruxelles
+0
+%
+Présentateur T.V. : Patrick n'a pas besoin de porte-jarretelles
+C'est fou
+Patrick ses bas s'tiennent
+Patrick ses bas s'tiennent
+0
+%
+Poète : Paul tisane
+Les sanglots longs
+Paul verveine
+Paul verveine
+0
+%
+Chanson : Outils de jardinage, outils de jardinage, outils de jardinage
+Claude François
+Pelles, pelles, pelles
+Pelles, pelles, pelles
+0
+%
+Roman : Déclivité à outil de plâtrier
+Rabelais
+Pente à truelle
+Pente à truelle
+0
+%
+Chanson : Arbre du bord des routes pour moi
+Plastic Bertrand
+Platane pour moi
+Platane pour moi
+0
+%
+Gastronomie : Philosophe grec de fromages
+Avant le dessert
+Platon de fromages
+Platon de fromages
+0
+%
+Scientifique : Un Victor au prénom de vive controverse
+Pôle nord
+Polémique Victor
+Polémique Victor
+0
+%
+Événement historique : Papa travaille la terre
+Victoire japonaise en 1941
+Père laboure
+Père laboure
+0
+%
+Jeu T.V. : Questions antipelliculaires
+FR3
+Questions pour un shampooing
+Questions pour un shampooing
+0
+%
+Personnage de film : caillou qui cogne le serpent
+c'est aussi le sixième film
+Roc qui bat le boa
+Roc qui bat le boa
+0
+%
+Pièce de la maison : Président irakien, chef-lieu du Maine-et-Loire
+On y mange
+Saddam Angers
+Saddam Angers
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Silvester slalome
+Silvester slalome
+0
+%
+Actrice : Les 6 cochons de Simone
+Le chat
+Simone (6|six) gorets
+Simone 6 gorets
+0
+%
+Actrice : Bout de Sophie
+La boum
+Sophie morceau
+Sophie morceau
+0
+%
+Commerce : Arrêt punition
+Essence
+Station sévice
+Station sévice
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Sylvester slalome
+Sylvester slalome
+0
+%
+Film : fourmi se trompe
+James Cameron
+Termite a tort
+Termite a tort
+0
+%
+Ville : Le mâle de ta chèvre tousse
+Mali
+Ton bouc tousse
+Ton bouc tousse
+0
+%
+Ville : Très coûteux nos accumulateurs d'énergie
+Catastrophe nucléaire
+Très chères nos piles
+Très chères nos piles
+0
+%
+Corps d'armée : Tu te barres d'ici c'est ma plage
+Militaires noirs
+Tu t'tires ailleurs c'est mes galets
+Tu t'tires ailleurs c'est mes galets
+0
+%
+Ustensile audio-visuel : Télé indien
+Pour zapper
+Télé commanche
+Télé commanche
+0
+%
+Objet : deux petites dunes
+Sur le nez
+Une paire de dunettes
+Une paire de dunettes
+0
+%
+Ville : Valide vos réserves
+URSS
+Valide vos stocks
+Valide vos stocks
+0
+%
+Pays : Venez vous amuser ici
+Caracas
+Venez jouer là
+Venez jouer là
+0
+%
+Personnage historique : Primate vert célère dans l'histoire
+Alésia
+Vert singe historique
+Vert singe historique
+0
+%
+Proverbe : J'étais amoureux d'un vieux gendarme en moto
+Agissez au lieu de ne rien faire
+Vieux motard que j'aimais
+Vieux motard que j'aimais
+0
+%
+Chanteuse : La paysanne moche
+Lauret Boutonnat
+Vilaine fermière
+Vilaine fermière
+0
+%
+Marque publicitaire : Cassoulet pour crocodile
+Conserves
+William saurien
+William saurien
+0
+%
+Film : Le super tube de Pierre Perret devient femme de l'empereur
+
+Zizi impératrice
+Zizi impératrice
+0
+%
+Recette de cuisine : Désaccord entre palmipèdes
+
+conflit de canards
+conflit de canards
+0
+%
+Chanson : C'est mieux que de prendre la Cicciolina
+Ray Ventura
+Ça vaut mieux que d'attraper la star latine
+Ça vaut mieux que d'attraper la star latine
+0
+%
+Établissement scolaire : École des surveillants pieds nus
+Ingénieurs
+École des pions déchaussés
+École des pions déchaussés
+0
+%
+Chanteuse : Fête des rois mages de principauté
+Ouragan
+Épiphanie de Monaco
+Épiphanie de Monaco
+0
+%
+Personnalité T.V. : Étienne remue
+TF1
+Étienne Bougeotte
+Étienne Bougeotte
+0
+%
diff --git a/backup/dummy/deconnaisseur.py b/backup/dummy/deconnaisseur.py
new file mode 100755 (executable)
index 0000000..e0a5093
--- /dev/null
@@ -0,0 +1,393 @@
+#!/usr/bin/python
+# -*- coding:utf8 -*-
+
+# Codé par 20-100 le 23/04/12
+
+# Un bot IRC qui sort des déconnaissances
+
+import irclib
+import ircbot
+import threading
+import random
+import time
+import pickle
+import re
+
+config_password="PatrickSébastien"
+config_pseudo="deconnaisseur"
+config_chanlist=["#bot","#flood"]
+config_play_channels=["#flood"]
+config_stay_channels=["#flood","#bot"]
+config_overops=["[20-100]","[20-100]_","PEB"]
+config_ops=["Nit","Eguel","Harry"]
+
+config_source_file_template="deconnaissances.%s.txt" #il faut rajouter le nom du serveur
+def get_config_source_file(serveur):
+    serveurs={"acoeur.crans.org":"acoeur","irc.crans.org":"crans"}
+    return config_source_file_template%(serveurs[serveur])
+ttrig=120 #time trigger (normalement 120, mais diminué pour les tests)
+Ttrig=600 #between two enigms
+config_time_incompressible=60 #on peut pas retrigger en dessous de ce temps (60)
+config_time_incompressible_clue=60 #on peut pas forcer la demande d'indice en dessous
+
+
+class UnicodeBotError(Exception):
+    pass
+def bot_unicode(chain):
+    try:
+        unicode(chain,"utf8")
+    except UnicodeDecodeError:
+        raise UnicodeBotError
+
+def log(channel,auteur=None,message=None):
+    #f=open(config_logfile,"a")
+    #if auteur==message==None:
+    #    chain=channel
+    #else:
+    #    chain="%s [%s:%s] %s"%(time.strftime("%T"),channel,auteur,message)
+    #f.write(chain+"\n")
+    #print chain
+    #f.close()
+    a=0 # does nothing
+
+
+def tolere(regexp):
+    """Renvoie une regexp plus tolérante"""
+    reg=unicode(regexp,"utf8").lower()
+    reg=reg.replace(u"á",u"(á|a)").replace(u"à",u"(à|a)").replace(u"â",u"(â|a)").replace(u"ä",u"(ä|a)")
+    reg=reg.replace(u"é",u"(é|e)").replace(u"è",u"(è|e)").replace(u"ê",u"(ê|e)").replace(u"ë",u"(ë|e)")
+    reg=reg.replace(u"í",u"(í|i)").replace(u"ì",u"(ì|i)").replace(u"î",u"(î|i)").replace(u"ï",u"(ï|i)")
+    reg=reg.replace(u"ó",u"(ó|o)").replace(u"ò",u"(ò|o)").replace(u"ê",u"(ô|o)").replace(u"ö",u"(ö|o)")
+    reg=reg.replace(u"ú",u"(ú|u)").replace(u"ù",u"(ù|u)").replace(u"ê",u"(û|u)").replace(u"ü",u"(ü|u)")
+    reg=reg.replace(u"ý",u"(ý|y)").replace(u"ỳ",u"(ỳ|y)").replace(u"ê",u"(ŷ|y)").replace(u"ÿ",u"(ÿ|y)")
+    reg=reg.replace(u"œ",u"(œ|oe)").replace(u"æ",u"(æ|ae)")
+    return reg
+
+class RefuseError(Exception):
+    pass
+
+class Deconnaisseur(ircbot.SingleServerIRCBot):
+    def __init__(self,serveur,debug=False):
+        temporary_pseudo=config_pseudo+str(random.randrange(10000,100000))
+        ircbot.SingleServerIRCBot.__init__(self, [(serveur, 6667)],
+                                      temporary_pseudo,"Un bot irc.[flagellez 20-100, il le mérite]", 10)
+        self.debug=debug
+        self.serveur=serveur
+        self.overops=config_overops
+        self.ops=self.overops+config_ops
+        self.chanlist=config_chanlist
+        self.stay_channels=config_stay_channels
+        self.play_channels=config_play_channels
+        self.play_status={i:[0] for i in self.play_channels}
+
+    def give_me_my_pseudo(self,serv):
+        serv.privmsg("NickServ","RECOVER %s %s"%(config_pseudo,config_password))
+        serv.privmsg("NickServ","RELEASE %s %s"%(config_pseudo,config_password))
+        time.sleep(0.3)
+        serv.nick(config_pseudo)
+    
+    def on_welcome(self, serv, ev):
+        self.give_me_my_pseudo(serv)
+        serv.privmsg("NickServ","identify %s"%(config_password))
+        log("Connected")
+        if self.debug:
+            self.chanlist=["#bot"]
+            self.play_channels=["#bot"]
+        for c in self.chanlist:
+            log("JOIN %s"%(c))
+            serv.join(c)
+        for c in self.play_channels:
+            token=time.time()-3600
+            self.play_status[c]=[0,token]
+            serv.execute_delayed(random.randrange(ttrig),self.start_enigme,(serv,c,token))
+
+    def start_enigme(self,serv,channel,token=None):
+        if self.play_status[channel][0]==0 and channel in self.play_channels:
+            ok="skip"
+            if token==self.play_status[channel][-1]:
+                ok="do_it"
+            if token==None:
+                if time.time() > self.play_status[channel][-1]+config_time_incompressible:
+                    ok="do_it"
+                else:
+                    ok="refuse"
+            if ok=="do_it":
+                enigme,indice,answer_reg,answer=self.get_enigme()
+                print "%s; %s; %s; %s"%(enigme, indice, answer_reg, answer)
+                serv.privmsg(channel,enigme)
+                token=time.time()
+                self.play_status[channel]=[1,enigme,indice,answer_reg,answer,token]
+                serv.execute_delayed(random.randrange(ttrig*3,ttrig*5),self.give_indice,(serv,channel,token))
+            elif ok=="refuse":
+                raise RefuseError
+    def give_indice(self,serv,channel,token):
+        if self.play_status[channel][0]==1:
+            if token==None:
+                # c'est donc que l'indice a été demandé
+                if self.play_status[channe][-1]+config_time_incompressible_clue<time.time():
+                    token=self.play_status[channel][-1]
+            if self.play_status[channel][-1]==token:
+                indice=self.play_status[channel][2]
+                serv.privmsg(channel,"indice : %s"%(indice))
+                self.play_status[channel][0]=2
+                serv.execute_delayed(random.randrange(ttrig*1,ttrig*3),self.give_answer,(serv,channel,token))
+    def give_answer(self,serv,channel,token):
+        if self.play_status[channel][0]==2 and self.play_status[channel][-1]==token:
+            answer=self.play_status[channel][4]
+            serv.privmsg(channel,"C'était : %s"%(answer))
+            token=time.time()
+            self.play_status[channel]=[0,token]
+            serv.execute_delayed(random.randrange(Ttrig*5,Ttrig*10),self.start_enigme,(serv,channel,token))
+
+    def get_enigme(self):
+        f=open(get_config_source_file(self.serveur))
+        t=f.read()
+        l=re.findall("%\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n",t)
+        l=[list(i) for i in l if len(i)==5]
+        l.sort(lambda x,y: cmp(int(x[4]),int(y[4])))
+        # on récupère le nombre d'occurrences le plus faible
+        mini=l[0][4]
+        # on garde que ceux qui ont le même nombre d'occurrences
+        l_mini=[en for en in l if en[4]==mini]
+        # on tire au hasard dedans
+        choisi=random.randrange(len(l_mini))
+        enigme,indice,answer_reg,answer,_=l_mini[choisi]
+        real_index=l.index(l_mini[choisi])
+        l[real_index][4]=str(int(l[real_index][4])+1)
+        f=open(get_config_source_file(self.serveur),"w")
+        f.write("%\n"+"\n%\n".join(["%s\n%s\n%s\n%s\n%s"%(i[0],i[1],i[2],i[3],i[4]) for i in l])+"\n%")
+        f.close()
+        return enigme,indice,answer_reg,answer
+
+    def pourmoi(self, serv, message):
+        pseudo=serv.get_nickname()
+        size=len(pseudo)
+        if message[:size]==pseudo and message[size]==":":
+            return (True,message[size+1:].strip(" "))
+        else:
+            return (False,message)
+
+    def on_privmsg(self, serv, ev):
+        message=ev.arguments()[0]
+        auteur = irclib.nm_to_n(ev.source())
+        try:
+            test=bot_unicode(message)
+        except UnicodeBotError:
+            serv.privmsg(auteur,
+              "Euh, tu fais de la merde avec ton encodage là, j'ai failli crasher…")
+            return
+        message=message.split()
+        cmd=message[0].lower()
+        notunderstood=False
+        if cmd=="help":
+            helpmsg_default="""Liste des commandes :
+ HELP       Affiche ce message d'aide"""
+            helpmsg_ops="""
+ JOIN       Faire rejoindre un channel (sans paramètres, donne la liste des chans actuels)
+ LEAVE      Faire quitter un channel
+ PLAY       Passe un channel en mode "jouer"
+ NOPLAY     Passe un channel en mode "ne pas jouer" """
+            helpmsg_overops="""
+ SAY        Fais envoyer un message sur un chan ou à une personne
+ STAY       Ignorera les prochains LEAVE pour un chan
+ NOSTAY     Opposé de STAY
+ STATUS     Montre l'état courant
+ DIE        Mourir"""
+            helpmsg=helpmsg_default
+            if auteur in self.ops:
+                helpmsg+=helpmsg_ops
+            if auteur in self.overops:
+                helpmsg+=helpmsg_overops
+            for ligne in helpmsg.split("\n"):
+                serv.privmsg(auteur,ligne)
+        elif cmd=="join":
+            if auteur in self.ops:
+                if len(message)>1:
+                    if message[1] in self.chanlist:
+                        serv.privmsg(auteur,"Je suis déjà sur %s"%(message[1]))
+                    else:
+                        serv.join(message[1])
+                        self.chanlist.append(message[1])
+                        serv.privmsg(auteur,"Channels : "+" ".join(self.chanlist))
+                        log("priv",auteur," ".join(message))
+                else:
+                    serv.privmsg(auteur,"Channels : "+" ".join(self.chanlist))
+            else:
+                notunderstood=True
+        elif cmd=="leave":
+            if auteur in self.ops and len(message)>1:
+                if message[1] in self.chanlist:
+                    if not (message[1] in self.stay_channels) or auteur in self.overops:
+                        serv.part(message[1])
+                        self.chanlist.remove(message[1])
+                        log("priv",auteur," ".join(message)+"[successful]")
+                    else:
+                        serv.privmsg(auteur,"Non, je reste !")
+                        log("priv",auteur," ".join(message)+"[failed]")
+                else:
+                    serv.privmsg(auteur,"Je ne suis pas sur %s"%(message[1]))
+            else:
+                notunderstood=True
+        elif cmd=="stay":
+            if auteur in self.overops:
+                if len(message)>1:
+                    if message[1] in self.stay_channels:
+                        serv.privmsg(auteur,"Je stay déjà sur %s."%(message[1]))
+                        log("priv",auteur," ".join(message)+"[failed]")
+                    else:
+                        self.stay_channels.append(message[1])
+                        serv.privmsg(auteur,"Stay channels : "+" ".join(self.stay_channels))
+                        log("priv",auteur," ".join(message)+"[successful]")
+                else:
+                    serv.privmsg(auteur,"Stay channels : "+" ".join(self.stay_channels))
+            else:
+                notunderstood=True
+        elif cmd=="nostay":
+            if auteur in self.overops:
+                if len(message)>1:
+                    if message[1] in self.stay_channels:
+                        self.stay_channels.remove(message[1])
+                        serv.privmsg(auteur,"Stay channels : "+" ".join(self.stay_channels))
+                        log("priv",auteur," ".join(message)+"[successful]")
+                    else:
+                        serv.privmsg(auteur,"Je ne stay pas sur %s."%(message[1]))
+                        log("priv",auteur," ".join(message)+"[failed]")
+            else:
+                notunderstood=True
+        elif cmd=="play":
+            if auteur in self.ops:
+                if len(message)>1:
+                    if message[1] in self.play_channels:
+                        serv.privmsg(auteur,"Je play déjà sur %s."%(message[1]))
+                        log("priv",auteur," ".join(message)+"[failed]")
+                    else:
+                        self.play_channels.append(message[1])
+                        self.play_status[message[1]]=[0,time.time()-3600]
+                        serv.privmsg(auteur,"Play channels : "+" ".join(self.play_channels))
+                        log("priv",auteur," ".join(message)+"[successful]")
+                else:
+                    serv.privmsg(auteur,"Play channels : "+" ".join(self.play_channels))
+            else:
+                notunderstood=True
+        elif cmd=="noplay":
+            if auteur in self.ops:
+                if len(message)>1:
+                    if message[1] in self.play_channels:
+                        self.play_channels.remove(message[1])
+                        serv.privmsg(auteur,"Play channels : "+" ".join(self.play_channels))
+                        log("priv",auteur," ".join(message)+"[successful]")
+                    else:
+                        serv.privmsg(auteur,"Je ne play pas sur %s."%(message[1]))
+                        log("priv",auteur," ".join(message)+"[failed]")
+            else:
+                notunderstood=True
+        elif cmd in ["states","status"]:
+            if auteur in self.overops:
+                for k in self.play_status.keys():
+                    serv.privmsg(auteur,"%s : %s"%(k,"; ".join([str(i) for i in self.play_status[k]])))
+        elif cmd=="say":
+            if auteur in self.overops and len(message)>2:
+                serv.privmsg(message[1]," ".join(message[2:]))
+                log("priv",auteur," ".join(message))
+            elif len(message)<=2:
+                serv.privmsg(auteur,"Syntaxe : SAY <channel> <message>")
+            else:
+                notunderstood=True
+        elif cmd=="die":
+            if auteur in self.overops:
+                self.die()
+        else:
+            notunderstood=True
+        if notunderstood:
+            serv.privmsg(auteur,"Je n'ai pas compris. Essaye HELP…")
+    
+    def on_pubmsg(self, serv, ev):
+        auteur = irclib.nm_to_n(ev.source())
+        canal = ev.target()
+        message = ev.arguments()[0]
+        try:
+            test=bot_unicode(message)
+        except UnicodeBotError:
+            serv.privmsg(canal,
+              "%s: Euh, tu fais de la merde avec ton encodage là, j'ai failli crasher…"%(auteur))
+            return
+        tryother=False
+        pour_moi,message=self.pourmoi(serv,message)
+        if pour_moi and message.split()!=[]:
+            cmd=message.split()[0].lower()
+            try:
+                args=" ".join(message.split()[1:])
+            except:
+                args=""
+            if cmd in ["meurs","die","crève"]:
+                if auteur in self.overops:
+                    self.die()
+                    log(canal,auteur,message+"[successful]")
+                else:
+                    serv.privmsg(canal,"%s: crève !"%(auteur))
+                    log(canal,auteur,message+"[failed]")
+            if cmd in ["meur", "meurt","meurre","meurres"]:
+                serv.privmsg(canal,'%s: Mourir, impératif, 2ème personne du pluriel : "meurs" (de rien)'%(auteur))
+            if cmd in ["part","leave","dégage"]:
+                if auteur in self.ops and (not (canal in self.stay_channels)
+                                           or auteur in self.overops):
+                    serv.part(canal,message="Éjecté par %s"%(auteur))
+                    log(canal,auteur,message+"[successful]")
+                else:
+                    serv.privmsg(canal,"%s: Non, je reste !"%(auteur))
+                    log(canal,auteur,message+"[failed]")
+    
+            if cmd in ["deviens","pseudo"]:
+                if auteur in self.ops:
+                    become=args
+                    serv.nick(become)
+                    log(canal,auteur,message+"[successful]")
+    
+            if cmd in ["coucou"]:
+                serv.privmsg(canal,"%s: coucou"%(auteur))
+            if cmd in ["ping"]:
+                serv.privmsg(canal,"%s: pong"%(auteur))
+            if cmd in ["déconnaissance","deconnaissance","énigme","enigme","encore"]:
+                if canal in self.play_channels:
+                    if self.play_status.get(canal,[-1])[0]==0:
+                        try:
+                            self.start_enigme(serv,canal)
+                        except RefuseError:
+                            serv.privmsg(canal,"%s: Je peux souffler une minute ?"%(auteur))
+                    else:
+                        serv.privmsg(canal,"%s: Rappel : %s"%(auteur,self.play_status[canal][1]))
+                else:
+                    serv.privmsg(canal,"%s: pas ici…"%(auteur))
+            else:
+                tryother=True
+        else:
+            tryother=True
+        if tryother:
+            if self.play_status.get(canal,[-1])[0] in [1,2]:
+                answer=self.play_status[canal][3]
+                if re.match(tolere(answer),unicode(message,"utf8").lower()):
+                    serv.privmsg(canal,"%s: bravo ! (C'était %s)"%(auteur,answer))
+                    token=time.time()
+                    self.play_status[canal]=[0,token]
+                    serv.execute_delayed(random.randrange(Ttrig*5,Ttrig*10),self.start_enigme,(serv,canal,token))
+
+
+if __name__=="__main__":
+    import sys
+    if len(sys.argv)==1:
+        print "Usage : deconnaisseur.py <serveur> [--debug]"
+        exit(1)
+    serveur=sys.argv[1]
+    if "debug" in sys.argv or "--debug" in sys.argv:
+        debug=True
+    else:
+        debug=False
+    serveurs={"a♡":"acoeur.crans.org","acoeur":"acoeur.crans.org","acoeur.crans.org":"acoeur.crans.org",
+              "irc":"irc.crans.org","crans":"irc.crans.org","irc.crans.org":"irc.crans.org"}
+    try:
+        serveur=serveurs[serveur]
+    except KeyError:
+        print "Server Unknown : %s"%(serveur)
+        exit(404)
+    deco=Deconnaisseur(serveur,debug)
+    deco.start()
diff --git a/deconnaissances.acoeur.txt b/deconnaissances.acoeur.txt
new file mode 100644 (file)
index 0000000..4ea5a5d
--- /dev/null
@@ -0,0 +1,859 @@
+%
+Homme célèbre : Ah ! Les confiseries et les quarante brigands
+Sésame ouvre-toi
+Ah( !|) Les bonbons et les quarante voleurs
+Ah ! Les bonbons et les quarante voleurs
+0
+%
+Écrivain: encouragement à un âne
+Lettres de mon moulin
+Allez(,| !|) fonce( !|) baudet
+Allez fonce baudet
+0
+%
+Chanteur : Bébert le crustacé
+Pour le plaisir
+Bébert le homard
+Bébert le homard
+0
+%
+Chanson : Le chevreau c'est terminé
+Hervé Vilard
+Cabri c'est fini
+Cabri c'est fini
+0
+%
+Personnage historique : Tisane des machines à moudre
+Guillotiné avec Danton
+Camomille des moulins
+Camomille des moulins
+0
+%
+Ville : Case pour litières de blessés
+Maroc
+Case à brancards
+Case à brancards
+0
+%
+Chanteuse : Chantal fruit exotique
+Enfants
+Chantal goyave
+Chantal goyave
+0
+%
+Chanson : Le mort fait tous les plis au bridge
+Francis Cabrel
+Chelem à mourir
+Chelem à mourir
+0
+%
+Acteur : Christophe le vertébré
+Le sicilien
+Christophe lombaire
+Christophe lombaire
+0
+%
+Profession : Mâle de la poule décédé
+Pompes funèbres
+Coq mort
+Coq mort
+0
+%
+Pays : Costume apéritif
+San José
+Costard Ricard
+Costard Ricard
+0
+%
+Profession : Réparateur de toit à bicyclette
+Petite reine
+Couvreur cycliste
+Couvreur cycliste
+0
+%
+Acteur : David pend
+Elephant Man
+David Lynche
+David Lynche
+0
+%
+Jeu T.V. : Des additions et des kilos de liquide
+Armand Jammot
+Des chiffres et des litres
+Des chiffres et des litres
+0
+%
+Série T.V. : Deux policiers américains qui ont faim
+Floride
+Deux flics à miam-miam
+Deux flics à miam-miam
+0
+%
+Chanteur : Didier chanteur celte de Tripoli
+Il faut laisser le temps au temps
+Didier barde libyen
+Didier barde libyen
+0
+%
+Présentatrice T.V. : Cajolée
+Enfants
+Dorlotée
+Dorlotée
+0
+%
+Chanteuse : Le riz d'Edith
+Marcel
+Edith Pilaf
+Edith Pilaf
+0
+%
+Chanteur : Le roi du rock américain se dépêche
+Love me tender
+Elvis pressé
+Elvis pressé
+0
+%
+Écrivain : Ernest qui a quitté son pays
+Nobel 1954
+Ernest émigré
+Ernest émigré
+0
+%
+Homme politique : Fidèle à sa marque d'huile automobile
+La Havane
+Fidèle Castrol
+Fidèle Castrol
+0
+%
+Chanteur : Chanteur du sud-ouest en Renault 4
+Sarbacane
+Francis 4L
+Francis 4L
+0
+%
+Homme politique : Georges proclame en sautant
+Le Tigre
+Georges clame en saut
+Georges clame en saut
+0
+%
+Chanteur : Georges bière couleur de treillis
+Barbe
+Georges mousse kaki
+Georges mousse kaki
+0
+%
+Gastronomie : Démange un dos asiatique
+Avec des pommes de terre
+Gratte un dos chinois
+Gratte un dos chinois
+0
+%
+Acteur : Égale 4
+Cyrano de Bergerac
+Gérard deux par deux
+Gérard deux par deux
+0
+%
+Ville : Tragédie des rongeurs domestiques
+Port hollandais
+Hamster drame
+Hamster drame
+0
+%
+Supers-héros : Déesse de la Lune époustouflante
+Dr. Doom
+Hécate Fantastique
+Hécate Fantastique
+0
+%
+Villes japonaises : Mao-Tsé-Toung et sac de voyage pour la neige
+Bombe atomique
+Héros chinois et bagage à ski
+Héros chinois et bagage à ski
+0
+%
+Pays : L'homme sera la femme
+Tel Aviv
+Il sera elle
+Il sera elle
+0
+%
+Politique : Fantômas la brosse à cheveux
+FN
+Jean Marais le peigne
+Jean Marais le peigne
+0
+%
+Cinéaste : Le gros aiguillon de Jean-Luc
+La chinoise
+Jean-Luc gros dard
+Jean-Luc gros dard
+0
+%
+Actur : Jean-Paul, enlève la peau sur mes coups de soleil
+Les magnifiques
+Jean-Paul pèle mon dos
+Jean-Paul pèle mon dos
+0
+%
+Présentateur T.V. : Les couches-culottes de Julien
+FR3
+Julien Pampers
+Julien Pampers
+0
+%
+Chanteur : Jules qui nettoie le pare-brise
+Espagnol
+Julio essuie(-| )glace(|s)
+Julio essuie-glace
+0
+%
+Marque publicitaire : Seulement un chinois
+Y'a pas d'heure pour en manger
+Juste un bridé
+Juste un bridé
+0
+%
+Pays : Pouvez-vous me dire où se trouve l'Arabie
+Riyad
+L'Arabie c'est où dîtes ?
+L'Arabie c'est où dîtes ?
+0
+%
+Film : La première île d'exil de Napoléon ou le pays des banques
+Claude Zidi
+L'Elbe ou la Suisse
+L'Elbe ou la Suisse
+0
+%
+Événement historique : Le couvent des porcs
+Conflit USA - Cuba
+L'abbaye des cochons
+L'abbaye des cochons
+0
+%
+Monument : L'insecte de Westminster
+Londres
+L'abeille de Westminster
+L'abeille de Westminster
+0
+%
+Chanson : Il est baissé devant le pianiste
+Michel Berger
+L'accroupi du pianiste
+L'accroupi du pianiste
+0
+%
+Littérature : L'amant de les dix rouleaux de ruban adhésif
+David Lawrence
+L'amant de les dix chattertons
+L'amant de les dix chattertons
+0
+%
+Œuvre musicale : Il apprend les sources
+Paul Dukas
+L'apprenti sourcier
+L'apprenti sourcier
+0
+%
+Pays : Le petit de l'autruche grise
+Habsbourg
+L'autruchon gris
+L'autruchon gris
+0
+%
+Chanson : Les chinois l'idolâtrent
+Johnny Hallyday
+L'idole des jaunes
+L'idole des jaunes
+0
+%
+Médecine chirurgicale : L'opération des potes de Capone
+Gorge
+L'opération des amis d'Al
+L'opération des amis d'Al
+0
+%
+Événement annuel : L'ouverture du bâton sur lequel montent des bergers landais
+En septembre
+L'ouverture de l'échasse
+L'ouverture de l'échasse
+0
+%
+Géographie : L'articulation du bras au dos à l'opposé du sud
+Arctique
+L'épaule nord
+L'épaule nord
+0
+%
+Événement historique : Bataille dans la piscine avec un ballon
+Défaite de Napoléon Premier
+La bataille de water(-| )polo
+La bataille de water-polo
+0
+%
+Chanson : Elle a l'essieu de velours
+Luis Mariano
+La bielle de Cadix
+La bielle de Cadix
+0
+%
+Film : La cage aux petits flacons de verre
+Edouard Molinaro
+La cage aux fioles
+La cage aux fioles
+0
+%
+Astronomie : L'étoile filante des motos américaines
+Comète
+La comète des Harley(|s)
+La comète des Harley
+0
+%
+Chanson : La danse des idiots
+Coin coin
+La danse des connards
+La danse des connards
+0
+%
+Œuvre musicale : L\instrument de musique en travaux
+Amadeus
+La flûte en chantier
+La flûte en chantier
+0
+%
+Géographie : La pomme de terre belge du sud
+Le Cap
+La frite du sud
+La frite du sud
+0
+%
+Œuvre architecturale : Massacre place Tien-An-Men
+Mur
+La grande mitraille de Chine
+La grande mitraille de Chine
+0
+%
+Musique: La missive à cathédrale
+Beethoven
+La lettre à église
+La lettre à église
+0
+%
+Film : On verse de l'eau dans une bouteille à travers la mariée
+Jeanne Moreau
+La mariée est entonnoir
+La mariée est entonnoir
+0
+%
+Gastronomie : La noix d'alligator
+Fruit exotique
+(La |)noix de croco
+La noix de croco
+0
+%
+Chanson : La poupée qui petit drapeau
+Michel Polnareff
+La poupée qui fanion
+La poupée qui fanion
+0
+%
+Lieu : La balade des morceaux de bœuf
+Nice
+La promenade des onglets
+La promenade des onglets
+0
+%
+Monument : La tour de badge
+Italie
+La tour de pin's
+La tour de pin's
+0
+%
+Sculpture : Sa locomotive a gagné
+Louvre
+La victoire de sa motrice
+La victoire de sa motrice
+0
+%
+Profession : Boisson russe pour vous défendre
+Justice
+La vodka de la défense
+La vodka de la défense
+0
+%
+Œuvre musicale : Belle bicyclette d'un compositeur classique
+Maurice Ravel
+Le beau vélo de Ravel
+Le beau vélo de Ravel
+0
+%
+Sport : Une haie tous les centièmes de mètre
+Guy Drut
+Le centimètre haie(s|)
+Le centimètre haies
+0
+%
+Scientifique : Il commande et va au lit de bonne heure
+Bonnet rouge
+Le commandant couche( |-)tôt
+Le commandant couche tôt
+0
+%
+Événement sportif : Le four d'hypnose
+Course cycliste
+Le four de transe
+Le four de transe
+0
+%
+Société secrète : Le clan des clowns
+Cagoule
+Le gugusse clan
+Le gugusse clan
+0
+%
+Fable : La plante grimpante et la fille à la scoliose
+Rien ne sert de courir
+Le lierre et la tordue
+Le lierre et la tordue
+0
+%
+Fleur : La moitié d'Amadeus
+Nice
+Le mi(-| )Mozart
+Le mi-Mozart
+0
+%
+Lieu : Frontière d'enchanteur entre l'est et l'ouest
+Porte de Brandenburg
+Le mur de Merlin
+Le mur de Merlin
+0
+%
+Lieu : Le mur de l'épicerie
+Jérusalem
+Le mur de l'alimentation
+Le mur de l'alimentation
+0
+%
+Bande dessinée : Le sceptre de bus
+Tintin
+Le sceptre d'autocar
+Le sceptre d'autocar
+0
+%
+Monument : La basilique au sucre
+Montmartre
+Le sucré cœur
+Le sucré cœur
+0
+%
+Événement sportif : Le tour d'une écriture particulière
+Cyclisme
+Le tour d'italique
+Le tour d'italique
+0
+%
+Lieu : Le tunnel des voitures saisies
+Lyon
+Le tunnel de fourrière
+Le tunnel de fourrière
+0
+%
+Événement sportif : 24 arabes au pays des rillettes
+Course automobile
+Les (24|vingt-quatre) beurs du Mans
+Les 24 beurs du Mans
+0
+%
+Animaux : Les briquets potables
+Mammifères des fleuves
+Les Zippos potables
+Les Zippos potables
+0
+%
+Film : Les cafés à cochonnes de Cherbourg
+Jacques Demy
+Les bars à truies de Cherbourg
+Les bars à truies de Cherbourg
+0
+%
+Spécialité : Instruments de musique de Cuba
+Partent en fumé
+Les cithares de la Havane
+Les cithares de la Havane
+0
+%
+Chanson : Les gifles d'une région d'Irlande
+Michel Sardou
+Les claques du Connemara
+Les claques du Connemara
+0
+%
+Chanson : Les potes ne sont pas à tribord
+Georges Brassens
+Les copains babord
+Les copains babord
+0
+%
+Département : Les deux femelles du bouc
+Niort
+Les deux chèvres
+Les deux chèvres
+0
+%
+Roman : Les dix arbres canadiens de Victor Hugo
+Cosette
+Les dix érables
+Les dix érables
+0
+%
+Série T.V. : Fromages d'Alsace de l'ouest
+Robert Conrad
+Les munsters de l'ouest
+Les munsters de l'ouest
+0
+%
+Expression : les flatulences de femme qui possède des chiens
+on est dessous dans une situation difficile ou dangereuse
+Les pets de dame aux cleb(|')s
+Les pets de dame aux clebs
+0
+%
+Événement historique : Les contribuables de la Marne
+Bataille de 14 - 18
+Les taxés de la Marne
+Les taxés de la Marne
+0
+%
+Roman : Le trio anti-moustiques
+Alexandre Dumas
+Les trois moustiquaires
+Les trois moustiquaires
+0
+%
+Géographie : Les îles du doigt infecté
+Espagne
+Les îles panaris
+Les îles panaris
+0
+%
+Femme politique : Filet de canard en pile de chairs
+Ministre anglais
+Magret de tas de chairs
+Magret de tas de chairs
+0
+%
+Écrivain : En voiture Marcel
+Provence
+Marcel bagnole
+Marcel bagnole
+0
+%
+Littérature : Marguerite plantigrade
+Hadrien
+Marguerite ours noir
+Marguerite ours noir
+0
+%
+Film : Rencontres sportive à l'abri du soleil
+Michel Blanc
+Match à l'ombre
+Match à l'ombre
+0
+%
+Roman : Damné stylo
+Baleine
+Maudit Bic
+Maudit Bic
+0
+%
+Chanteur : Le Michel qui a pris beaucoup de poissons
+Laurette
+Michel belle pêche
+Michel belle pêche
+0
+%
+Acteur : Attention à l'épouse du fils, Michel
+Le gendarme de Saint-Tropez
+Michel gare à la bru
+Michel gare à la bru
+0
+%
+Film : Membre amputé des eaux fraîches
+Marcel Pagnol
+Moignon des sources
+Moignon des sources
+0
+%
+Ville : Grimper rapidement et en hauteur
+Capitale d'Amérique du Sud
+Monter vite et haut
+Monter vite et haut
+0
+%
+Gastronomie : Wolfgang Amadeus est ici
+Fromage
+Mozart est là
+Mozart est là
+0
+%
+Personnage historique : Empereur arbre fruitier
+Corse
+Napoléon pommier
+Napoléon pommier
+0
+%
+Série T.V. : Commissaire d'agneau
+Roger Hanin
+Navarin
+Navarin
+0
+%
+Roman : SS dans le RER
+Raymond Queneau
+Nazi dans le métro
+Nazi dans le métro
+0
+%
+Chanson : Ne me fais pas boire
+Jacques Brel
+Ne me cuite pas
+Ne me cuite pas
+0
+%
+Peintre : C'est Pablo de manger dans le plat des autres
+Espagne
+Pablo pique-assiette
+Pablo pique-assiette
+0
+%
+Épreuve sportive : Le rallye automobile préféré des Vikings
+Thierry Sabine
+Paris drakkar
+Paris drakkar
+0
+%
+Architecture : Pas si moche, sculpture peinture et musique évacuent du bois par tous les orifices
+Pour un peu plus que des évèques
+Pas laid art chie et pisse copeaux
+Pas laid art chie et pisse copeaux
+0
+%
+People: Pauvre Hotel de Luxe
+
+Pas riche Hilton
+Pas riche Hilton
+0
+%
+Chanteur : Patrick Belge
+J'attends Lola
+Patrick Bruxelles
+Patrick Bruxelles
+0
+%
+Présentateur T.V. : Patrick n'a pas besoin de porte-jarretelles
+C'est fou
+Patrick ses bas s'tiennent
+Patrick ses bas s'tiennent
+0
+%
+Poète : Paul tisane
+Les sanglots longs
+Paul verveine
+Paul verveine
+0
+%
+Chanson : Outils de jardinage, outils de jardinage, outils de jardinage
+Claude François
+Pelles, pelles, pelles
+Pelles, pelles, pelles
+0
+%
+Roman : Déclivité à outil de plâtrier
+Rabelais
+Pente à truelle
+Pente à truelle
+0
+%
+Chanson : Arbre du bord des routes pour moi
+Plastic Bertrand
+Platane pour moi
+Platane pour moi
+0
+%
+Gastronomie : Philosophe grec de fromages
+Avant le dessert
+Platon de fromages
+Platon de fromages
+0
+%
+Scientifique : Un Victor au prénom de vive controverse
+Pôle nord
+Polémique Victor
+Polémique Victor
+0
+%
+Événement historique : Papa travaille la terre
+Victoire japonaise en 1941
+Père laboure
+Père laboure
+0
+%
+Jeu T.V. : Questions antipelliculaires
+FR3
+Questions pour un shampooing
+Questions pour un shampooing
+0
+%
+Personnage de film : caillou qui cogne le serpent
+c'est aussi le sixième film
+Roc qui bat le boa
+Roc qui bat le boa
+0
+%
+Pièce de la maison : Président irakien, chef-lieu du Maine-et-Loire
+On y mange
+Saddam Angers
+Saddam Angers
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Silvester slalome
+Silvester slalome
+0
+%
+Actrice : Les 6 cochons de Simone
+Le chat
+Simone (6|six) gorets
+Simone 6 gorets
+0
+%
+Actrice : Bout de Sophie
+La boum
+Sophie morceau
+Sophie morceau
+0
+%
+Commerce : Arrêt punition
+Essence
+Station sévice
+Station sévice
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Sylvester slalome
+Sylvester slalome
+0
+%
+Film : fourmi se trompe
+James Cameron
+Termite a tort
+Termite a tort
+0
+%
+Ville : Le mâle de ta chèvre tousse
+Mali
+Ton bouc tousse
+Ton bouc tousse
+0
+%
+Ville : Très coûteux nos accumulateurs d'énergie
+Catastrophe nucléaire
+Très chères nos piles
+Très chères nos piles
+0
+%
+Corps d'armée : Tu te barres d'ici c'est ma plage
+Militaires noirs
+Tu t'tires ailleurs c'est mes galets
+Tu t'tires ailleurs c'est mes galets
+0
+%
+Ustensile audio-visuel : Télé indien
+Pour zapper
+Télé commanche
+Télé commanche
+0
+%
+Objet : deux petites dunes
+Sur le nez
+Une paire de dunettes
+Une paire de dunettes
+0
+%
+Ville : Valide vos réserves
+URSS
+Valide vos stocks
+Valide vos stocks
+0
+%
+Pays : Venez vous amuser ici
+Caracas
+Venez jouer là
+Venez jouer là
+0
+%
+Personnage historique : Primate vert célère dans l'histoire
+Alésia
+Vert singe historique
+Vert singe historique
+0
+%
+Proverbe : J'étais amoureux d'un vieux gendarme en moto
+Agissez au lieu de ne rien faire
+Vieux motard que j'aimais
+Vieux motard que j'aimais
+0
+%
+Chanteuse : La paysanne moche
+Lauret Boutonnat
+Vilaine fermière
+Vilaine fermière
+0
+%
+Marque publicitaire : Cassoulet pour crocodile
+Conserves
+William saurien
+William saurien
+0
+%
+Film : Le super tube de Pierre Perret devient femme de l'empereur
+
+Zizi impératrice
+Zizi impératrice
+0
+%
+Recette de cuisine : Désaccord entre palmipèdes
+
+conflit de canards
+conflit de canards
+0
+%
+Chanson : C'est mieux que de prendre la Cicciolina
+Ray Ventura
+Ça vaut mieux que d'attraper la star latine
+Ça vaut mieux que d'attraper la star latine
+0
+%
+Établissement scolaire : École des surveillants pieds nus
+Ingénieurs
+École des pions déchaussés
+École des pions déchaussés
+0
+%
+Chanteuse : Fête des rois mages de principauté
+Ouragan
+Épiphanie de Monaco
+Épiphanie de Monaco
+0
+%
+Personnalité T.V. : Étienne remue
+TF1
+Étienne Bougeotte
+Étienne Bougeotte
+0
+%
diff --git a/deconnaissances.crans.txt b/deconnaissances.crans.txt
new file mode 100644 (file)
index 0000000..4ea5a5d
--- /dev/null
@@ -0,0 +1,859 @@
+%
+Homme célèbre : Ah ! Les confiseries et les quarante brigands
+Sésame ouvre-toi
+Ah( !|) Les bonbons et les quarante voleurs
+Ah ! Les bonbons et les quarante voleurs
+0
+%
+Écrivain: encouragement à un âne
+Lettres de mon moulin
+Allez(,| !|) fonce( !|) baudet
+Allez fonce baudet
+0
+%
+Chanteur : Bébert le crustacé
+Pour le plaisir
+Bébert le homard
+Bébert le homard
+0
+%
+Chanson : Le chevreau c'est terminé
+Hervé Vilard
+Cabri c'est fini
+Cabri c'est fini
+0
+%
+Personnage historique : Tisane des machines à moudre
+Guillotiné avec Danton
+Camomille des moulins
+Camomille des moulins
+0
+%
+Ville : Case pour litières de blessés
+Maroc
+Case à brancards
+Case à brancards
+0
+%
+Chanteuse : Chantal fruit exotique
+Enfants
+Chantal goyave
+Chantal goyave
+0
+%
+Chanson : Le mort fait tous les plis au bridge
+Francis Cabrel
+Chelem à mourir
+Chelem à mourir
+0
+%
+Acteur : Christophe le vertébré
+Le sicilien
+Christophe lombaire
+Christophe lombaire
+0
+%
+Profession : Mâle de la poule décédé
+Pompes funèbres
+Coq mort
+Coq mort
+0
+%
+Pays : Costume apéritif
+San José
+Costard Ricard
+Costard Ricard
+0
+%
+Profession : Réparateur de toit à bicyclette
+Petite reine
+Couvreur cycliste
+Couvreur cycliste
+0
+%
+Acteur : David pend
+Elephant Man
+David Lynche
+David Lynche
+0
+%
+Jeu T.V. : Des additions et des kilos de liquide
+Armand Jammot
+Des chiffres et des litres
+Des chiffres et des litres
+0
+%
+Série T.V. : Deux policiers américains qui ont faim
+Floride
+Deux flics à miam-miam
+Deux flics à miam-miam
+0
+%
+Chanteur : Didier chanteur celte de Tripoli
+Il faut laisser le temps au temps
+Didier barde libyen
+Didier barde libyen
+0
+%
+Présentatrice T.V. : Cajolée
+Enfants
+Dorlotée
+Dorlotée
+0
+%
+Chanteuse : Le riz d'Edith
+Marcel
+Edith Pilaf
+Edith Pilaf
+0
+%
+Chanteur : Le roi du rock américain se dépêche
+Love me tender
+Elvis pressé
+Elvis pressé
+0
+%
+Écrivain : Ernest qui a quitté son pays
+Nobel 1954
+Ernest émigré
+Ernest émigré
+0
+%
+Homme politique : Fidèle à sa marque d'huile automobile
+La Havane
+Fidèle Castrol
+Fidèle Castrol
+0
+%
+Chanteur : Chanteur du sud-ouest en Renault 4
+Sarbacane
+Francis 4L
+Francis 4L
+0
+%
+Homme politique : Georges proclame en sautant
+Le Tigre
+Georges clame en saut
+Georges clame en saut
+0
+%
+Chanteur : Georges bière couleur de treillis
+Barbe
+Georges mousse kaki
+Georges mousse kaki
+0
+%
+Gastronomie : Démange un dos asiatique
+Avec des pommes de terre
+Gratte un dos chinois
+Gratte un dos chinois
+0
+%
+Acteur : Égale 4
+Cyrano de Bergerac
+Gérard deux par deux
+Gérard deux par deux
+0
+%
+Ville : Tragédie des rongeurs domestiques
+Port hollandais
+Hamster drame
+Hamster drame
+0
+%
+Supers-héros : Déesse de la Lune époustouflante
+Dr. Doom
+Hécate Fantastique
+Hécate Fantastique
+0
+%
+Villes japonaises : Mao-Tsé-Toung et sac de voyage pour la neige
+Bombe atomique
+Héros chinois et bagage à ski
+Héros chinois et bagage à ski
+0
+%
+Pays : L'homme sera la femme
+Tel Aviv
+Il sera elle
+Il sera elle
+0
+%
+Politique : Fantômas la brosse à cheveux
+FN
+Jean Marais le peigne
+Jean Marais le peigne
+0
+%
+Cinéaste : Le gros aiguillon de Jean-Luc
+La chinoise
+Jean-Luc gros dard
+Jean-Luc gros dard
+0
+%
+Actur : Jean-Paul, enlève la peau sur mes coups de soleil
+Les magnifiques
+Jean-Paul pèle mon dos
+Jean-Paul pèle mon dos
+0
+%
+Présentateur T.V. : Les couches-culottes de Julien
+FR3
+Julien Pampers
+Julien Pampers
+0
+%
+Chanteur : Jules qui nettoie le pare-brise
+Espagnol
+Julio essuie(-| )glace(|s)
+Julio essuie-glace
+0
+%
+Marque publicitaire : Seulement un chinois
+Y'a pas d'heure pour en manger
+Juste un bridé
+Juste un bridé
+0
+%
+Pays : Pouvez-vous me dire où se trouve l'Arabie
+Riyad
+L'Arabie c'est où dîtes ?
+L'Arabie c'est où dîtes ?
+0
+%
+Film : La première île d'exil de Napoléon ou le pays des banques
+Claude Zidi
+L'Elbe ou la Suisse
+L'Elbe ou la Suisse
+0
+%
+Événement historique : Le couvent des porcs
+Conflit USA - Cuba
+L'abbaye des cochons
+L'abbaye des cochons
+0
+%
+Monument : L'insecte de Westminster
+Londres
+L'abeille de Westminster
+L'abeille de Westminster
+0
+%
+Chanson : Il est baissé devant le pianiste
+Michel Berger
+L'accroupi du pianiste
+L'accroupi du pianiste
+0
+%
+Littérature : L'amant de les dix rouleaux de ruban adhésif
+David Lawrence
+L'amant de les dix chattertons
+L'amant de les dix chattertons
+0
+%
+Œuvre musicale : Il apprend les sources
+Paul Dukas
+L'apprenti sourcier
+L'apprenti sourcier
+0
+%
+Pays : Le petit de l'autruche grise
+Habsbourg
+L'autruchon gris
+L'autruchon gris
+0
+%
+Chanson : Les chinois l'idolâtrent
+Johnny Hallyday
+L'idole des jaunes
+L'idole des jaunes
+0
+%
+Médecine chirurgicale : L'opération des potes de Capone
+Gorge
+L'opération des amis d'Al
+L'opération des amis d'Al
+0
+%
+Événement annuel : L'ouverture du bâton sur lequel montent des bergers landais
+En septembre
+L'ouverture de l'échasse
+L'ouverture de l'échasse
+0
+%
+Géographie : L'articulation du bras au dos à l'opposé du sud
+Arctique
+L'épaule nord
+L'épaule nord
+0
+%
+Événement historique : Bataille dans la piscine avec un ballon
+Défaite de Napoléon Premier
+La bataille de water(-| )polo
+La bataille de water-polo
+0
+%
+Chanson : Elle a l'essieu de velours
+Luis Mariano
+La bielle de Cadix
+La bielle de Cadix
+0
+%
+Film : La cage aux petits flacons de verre
+Edouard Molinaro
+La cage aux fioles
+La cage aux fioles
+0
+%
+Astronomie : L'étoile filante des motos américaines
+Comète
+La comète des Harley(|s)
+La comète des Harley
+0
+%
+Chanson : La danse des idiots
+Coin coin
+La danse des connards
+La danse des connards
+0
+%
+Œuvre musicale : L\instrument de musique en travaux
+Amadeus
+La flûte en chantier
+La flûte en chantier
+0
+%
+Géographie : La pomme de terre belge du sud
+Le Cap
+La frite du sud
+La frite du sud
+0
+%
+Œuvre architecturale : Massacre place Tien-An-Men
+Mur
+La grande mitraille de Chine
+La grande mitraille de Chine
+0
+%
+Musique: La missive à cathédrale
+Beethoven
+La lettre à église
+La lettre à église
+0
+%
+Film : On verse de l'eau dans une bouteille à travers la mariée
+Jeanne Moreau
+La mariée est entonnoir
+La mariée est entonnoir
+0
+%
+Gastronomie : La noix d'alligator
+Fruit exotique
+(La |)noix de croco
+La noix de croco
+0
+%
+Chanson : La poupée qui petit drapeau
+Michel Polnareff
+La poupée qui fanion
+La poupée qui fanion
+0
+%
+Lieu : La balade des morceaux de bœuf
+Nice
+La promenade des onglets
+La promenade des onglets
+0
+%
+Monument : La tour de badge
+Italie
+La tour de pin's
+La tour de pin's
+0
+%
+Sculpture : Sa locomotive a gagné
+Louvre
+La victoire de sa motrice
+La victoire de sa motrice
+0
+%
+Profession : Boisson russe pour vous défendre
+Justice
+La vodka de la défense
+La vodka de la défense
+0
+%
+Œuvre musicale : Belle bicyclette d'un compositeur classique
+Maurice Ravel
+Le beau vélo de Ravel
+Le beau vélo de Ravel
+0
+%
+Sport : Une haie tous les centièmes de mètre
+Guy Drut
+Le centimètre haie(s|)
+Le centimètre haies
+0
+%
+Scientifique : Il commande et va au lit de bonne heure
+Bonnet rouge
+Le commandant couche( |-)tôt
+Le commandant couche tôt
+0
+%
+Événement sportif : Le four d'hypnose
+Course cycliste
+Le four de transe
+Le four de transe
+0
+%
+Société secrète : Le clan des clowns
+Cagoule
+Le gugusse clan
+Le gugusse clan
+0
+%
+Fable : La plante grimpante et la fille à la scoliose
+Rien ne sert de courir
+Le lierre et la tordue
+Le lierre et la tordue
+0
+%
+Fleur : La moitié d'Amadeus
+Nice
+Le mi(-| )Mozart
+Le mi-Mozart
+0
+%
+Lieu : Frontière d'enchanteur entre l'est et l'ouest
+Porte de Brandenburg
+Le mur de Merlin
+Le mur de Merlin
+0
+%
+Lieu : Le mur de l'épicerie
+Jérusalem
+Le mur de l'alimentation
+Le mur de l'alimentation
+0
+%
+Bande dessinée : Le sceptre de bus
+Tintin
+Le sceptre d'autocar
+Le sceptre d'autocar
+0
+%
+Monument : La basilique au sucre
+Montmartre
+Le sucré cœur
+Le sucré cœur
+0
+%
+Événement sportif : Le tour d'une écriture particulière
+Cyclisme
+Le tour d'italique
+Le tour d'italique
+0
+%
+Lieu : Le tunnel des voitures saisies
+Lyon
+Le tunnel de fourrière
+Le tunnel de fourrière
+0
+%
+Événement sportif : 24 arabes au pays des rillettes
+Course automobile
+Les (24|vingt-quatre) beurs du Mans
+Les 24 beurs du Mans
+0
+%
+Animaux : Les briquets potables
+Mammifères des fleuves
+Les Zippos potables
+Les Zippos potables
+0
+%
+Film : Les cafés à cochonnes de Cherbourg
+Jacques Demy
+Les bars à truies de Cherbourg
+Les bars à truies de Cherbourg
+0
+%
+Spécialité : Instruments de musique de Cuba
+Partent en fumé
+Les cithares de la Havane
+Les cithares de la Havane
+0
+%
+Chanson : Les gifles d'une région d'Irlande
+Michel Sardou
+Les claques du Connemara
+Les claques du Connemara
+0
+%
+Chanson : Les potes ne sont pas à tribord
+Georges Brassens
+Les copains babord
+Les copains babord
+0
+%
+Département : Les deux femelles du bouc
+Niort
+Les deux chèvres
+Les deux chèvres
+0
+%
+Roman : Les dix arbres canadiens de Victor Hugo
+Cosette
+Les dix érables
+Les dix érables
+0
+%
+Série T.V. : Fromages d'Alsace de l'ouest
+Robert Conrad
+Les munsters de l'ouest
+Les munsters de l'ouest
+0
+%
+Expression : les flatulences de femme qui possède des chiens
+on est dessous dans une situation difficile ou dangereuse
+Les pets de dame aux cleb(|')s
+Les pets de dame aux clebs
+0
+%
+Événement historique : Les contribuables de la Marne
+Bataille de 14 - 18
+Les taxés de la Marne
+Les taxés de la Marne
+0
+%
+Roman : Le trio anti-moustiques
+Alexandre Dumas
+Les trois moustiquaires
+Les trois moustiquaires
+0
+%
+Géographie : Les îles du doigt infecté
+Espagne
+Les îles panaris
+Les îles panaris
+0
+%
+Femme politique : Filet de canard en pile de chairs
+Ministre anglais
+Magret de tas de chairs
+Magret de tas de chairs
+0
+%
+Écrivain : En voiture Marcel
+Provence
+Marcel bagnole
+Marcel bagnole
+0
+%
+Littérature : Marguerite plantigrade
+Hadrien
+Marguerite ours noir
+Marguerite ours noir
+0
+%
+Film : Rencontres sportive à l'abri du soleil
+Michel Blanc
+Match à l'ombre
+Match à l'ombre
+0
+%
+Roman : Damné stylo
+Baleine
+Maudit Bic
+Maudit Bic
+0
+%
+Chanteur : Le Michel qui a pris beaucoup de poissons
+Laurette
+Michel belle pêche
+Michel belle pêche
+0
+%
+Acteur : Attention à l'épouse du fils, Michel
+Le gendarme de Saint-Tropez
+Michel gare à la bru
+Michel gare à la bru
+0
+%
+Film : Membre amputé des eaux fraîches
+Marcel Pagnol
+Moignon des sources
+Moignon des sources
+0
+%
+Ville : Grimper rapidement et en hauteur
+Capitale d'Amérique du Sud
+Monter vite et haut
+Monter vite et haut
+0
+%
+Gastronomie : Wolfgang Amadeus est ici
+Fromage
+Mozart est là
+Mozart est là
+0
+%
+Personnage historique : Empereur arbre fruitier
+Corse
+Napoléon pommier
+Napoléon pommier
+0
+%
+Série T.V. : Commissaire d'agneau
+Roger Hanin
+Navarin
+Navarin
+0
+%
+Roman : SS dans le RER
+Raymond Queneau
+Nazi dans le métro
+Nazi dans le métro
+0
+%
+Chanson : Ne me fais pas boire
+Jacques Brel
+Ne me cuite pas
+Ne me cuite pas
+0
+%
+Peintre : C'est Pablo de manger dans le plat des autres
+Espagne
+Pablo pique-assiette
+Pablo pique-assiette
+0
+%
+Épreuve sportive : Le rallye automobile préféré des Vikings
+Thierry Sabine
+Paris drakkar
+Paris drakkar
+0
+%
+Architecture : Pas si moche, sculpture peinture et musique évacuent du bois par tous les orifices
+Pour un peu plus que des évèques
+Pas laid art chie et pisse copeaux
+Pas laid art chie et pisse copeaux
+0
+%
+People: Pauvre Hotel de Luxe
+
+Pas riche Hilton
+Pas riche Hilton
+0
+%
+Chanteur : Patrick Belge
+J'attends Lola
+Patrick Bruxelles
+Patrick Bruxelles
+0
+%
+Présentateur T.V. : Patrick n'a pas besoin de porte-jarretelles
+C'est fou
+Patrick ses bas s'tiennent
+Patrick ses bas s'tiennent
+0
+%
+Poète : Paul tisane
+Les sanglots longs
+Paul verveine
+Paul verveine
+0
+%
+Chanson : Outils de jardinage, outils de jardinage, outils de jardinage
+Claude François
+Pelles, pelles, pelles
+Pelles, pelles, pelles
+0
+%
+Roman : Déclivité à outil de plâtrier
+Rabelais
+Pente à truelle
+Pente à truelle
+0
+%
+Chanson : Arbre du bord des routes pour moi
+Plastic Bertrand
+Platane pour moi
+Platane pour moi
+0
+%
+Gastronomie : Philosophe grec de fromages
+Avant le dessert
+Platon de fromages
+Platon de fromages
+0
+%
+Scientifique : Un Victor au prénom de vive controverse
+Pôle nord
+Polémique Victor
+Polémique Victor
+0
+%
+Événement historique : Papa travaille la terre
+Victoire japonaise en 1941
+Père laboure
+Père laboure
+0
+%
+Jeu T.V. : Questions antipelliculaires
+FR3
+Questions pour un shampooing
+Questions pour un shampooing
+0
+%
+Personnage de film : caillou qui cogne le serpent
+c'est aussi le sixième film
+Roc qui bat le boa
+Roc qui bat le boa
+0
+%
+Pièce de la maison : Président irakien, chef-lieu du Maine-et-Loire
+On y mange
+Saddam Angers
+Saddam Angers
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Silvester slalome
+Silvester slalome
+0
+%
+Actrice : Les 6 cochons de Simone
+Le chat
+Simone (6|six) gorets
+Simone 6 gorets
+0
+%
+Actrice : Bout de Sophie
+La boum
+Sophie morceau
+Sophie morceau
+0
+%
+Commerce : Arrêt punition
+Essence
+Station sévice
+Station sévice
+0
+%
+Acteur : Sylvester skie entre les piquets
+Rambo
+Sylvester slalome
+Sylvester slalome
+0
+%
+Film : fourmi se trompe
+James Cameron
+Termite a tort
+Termite a tort
+0
+%
+Ville : Le mâle de ta chèvre tousse
+Mali
+Ton bouc tousse
+Ton bouc tousse
+0
+%
+Ville : Très coûteux nos accumulateurs d'énergie
+Catastrophe nucléaire
+Très chères nos piles
+Très chères nos piles
+0
+%
+Corps d'armée : Tu te barres d'ici c'est ma plage
+Militaires noirs
+Tu t'tires ailleurs c'est mes galets
+Tu t'tires ailleurs c'est mes galets
+0
+%
+Ustensile audio-visuel : Télé indien
+Pour zapper
+Télé commanche
+Télé commanche
+0
+%
+Objet : deux petites dunes
+Sur le nez
+Une paire de dunettes
+Une paire de dunettes
+0
+%
+Ville : Valide vos réserves
+URSS
+Valide vos stocks
+Valide vos stocks
+0
+%
+Pays : Venez vous amuser ici
+Caracas
+Venez jouer là
+Venez jouer là
+0
+%
+Personnage historique : Primate vert célère dans l'histoire
+Alésia
+Vert singe historique
+Vert singe historique
+0
+%
+Proverbe : J'étais amoureux d'un vieux gendarme en moto
+Agissez au lieu de ne rien faire
+Vieux motard que j'aimais
+Vieux motard que j'aimais
+0
+%
+Chanteuse : La paysanne moche
+Lauret Boutonnat
+Vilaine fermière
+Vilaine fermière
+0
+%
+Marque publicitaire : Cassoulet pour crocodile
+Conserves
+William saurien
+William saurien
+0
+%
+Film : Le super tube de Pierre Perret devient femme de l'empereur
+
+Zizi impératrice
+Zizi impératrice
+0
+%
+Recette de cuisine : Désaccord entre palmipèdes
+
+conflit de canards
+conflit de canards
+0
+%
+Chanson : C'est mieux que de prendre la Cicciolina
+Ray Ventura
+Ça vaut mieux que d'attraper la star latine
+Ça vaut mieux que d'attraper la star latine
+0
+%
+Établissement scolaire : École des surveillants pieds nus
+Ingénieurs
+École des pions déchaussés
+École des pions déchaussés
+0
+%
+Chanteuse : Fête des rois mages de principauté
+Ouragan
+Épiphanie de Monaco
+Épiphanie de Monaco
+0
+%
+Personnalité T.V. : Étienne remue
+TF1
+Étienne Bougeotte
+Étienne Bougeotte
+0
+%
diff --git a/deconnaisseur.py b/deconnaisseur.py
new file mode 100755 (executable)
index 0000000..e0a5093
--- /dev/null
@@ -0,0 +1,393 @@
+#!/usr/bin/python
+# -*- coding:utf8 -*-
+
+# Codé par 20-100 le 23/04/12
+
+# Un bot IRC qui sort des déconnaissances
+
+import irclib
+import ircbot
+import threading
+import random
+import time
+import pickle
+import re
+
+config_password="PatrickSébastien"
+config_pseudo="deconnaisseur"
+config_chanlist=["#bot","#flood"]
+config_play_channels=["#flood"]
+config_stay_channels=["#flood","#bot"]
+config_overops=["[20-100]","[20-100]_","PEB"]
+config_ops=["Nit","Eguel","Harry"]
+
+config_source_file_template="deconnaissances.%s.txt" #il faut rajouter le nom du serveur
+def get_config_source_file(serveur):
+    serveurs={"acoeur.crans.org":"acoeur","irc.crans.org":"crans"}
+    return config_source_file_template%(serveurs[serveur])
+ttrig=120 #time trigger (normalement 120, mais diminué pour les tests)
+Ttrig=600 #between two enigms
+config_time_incompressible=60 #on peut pas retrigger en dessous de ce temps (60)
+config_time_incompressible_clue=60 #on peut pas forcer la demande d'indice en dessous
+
+
+class UnicodeBotError(Exception):
+    pass
+def bot_unicode(chain):
+    try:
+        unicode(chain,"utf8")
+    except UnicodeDecodeError:
+        raise UnicodeBotError
+
+def log(channel,auteur=None,message=None):
+    #f=open(config_logfile,"a")
+    #if auteur==message==None:
+    #    chain=channel
+    #else:
+    #    chain="%s [%s:%s] %s"%(time.strftime("%T"),channel,auteur,message)
+    #f.write(chain+"\n")
+    #print chain
+    #f.close()
+    a=0 # does nothing
+
+
+def tolere(regexp):
+    """Renvoie une regexp plus tolérante"""
+    reg=unicode(regexp,"utf8").lower()
+    reg=reg.replace(u"á",u"(á|a)").replace(u"à",u"(à|a)").replace(u"â",u"(â|a)").replace(u"ä",u"(ä|a)")
+    reg=reg.replace(u"é",u"(é|e)").replace(u"è",u"(è|e)").replace(u"ê",u"(ê|e)").replace(u"ë",u"(ë|e)")
+    reg=reg.replace(u"í",u"(í|i)").replace(u"ì",u"(ì|i)").replace(u"î",u"(î|i)").replace(u"ï",u"(ï|i)")
+    reg=reg.replace(u"ó",u"(ó|o)").replace(u"ò",u"(ò|o)").replace(u"ê",u"(ô|o)").replace(u"ö",u"(ö|o)")
+    reg=reg.replace(u"ú",u"(ú|u)").replace(u"ù",u"(ù|u)").replace(u"ê",u"(û|u)").replace(u"ü",u"(ü|u)")
+    reg=reg.replace(u"ý",u"(ý|y)").replace(u"ỳ",u"(ỳ|y)").replace(u"ê",u"(ŷ|y)").replace(u"ÿ",u"(ÿ|y)")
+    reg=reg.replace(u"œ",u"(œ|oe)").replace(u"æ",u"(æ|ae)")
+    return reg
+
+class RefuseError(Exception):
+    pass
+
+class Deconnaisseur(ircbot.SingleServerIRCBot):
+    def __init__(self,serveur,debug=False):
+        temporary_pseudo=config_pseudo+str(random.randrange(10000,100000))
+        ircbot.SingleServerIRCBot.__init__(self, [(serveur, 6667)],
+                                      temporary_pseudo,"Un bot irc.[flagellez 20-100, il le mérite]", 10)
+        self.debug=debug
+        self.serveur=serveur
+        self.overops=config_overops
+        self.ops=self.overops+config_ops
+        self.chanlist=config_chanlist
+        self.stay_channels=config_stay_channels
+        self.play_channels=config_play_channels
+        self.play_status={i:[0] for i in self.play_channels}
+
+    def give_me_my_pseudo(self,serv):
+        serv.privmsg("NickServ","RECOVER %s %s"%(config_pseudo,config_password))
+        serv.privmsg("NickServ","RELEASE %s %s"%(config_pseudo,config_password))
+        time.sleep(0.3)
+        serv.nick(config_pseudo)
+    
+    def on_welcome(self, serv, ev):
+        self.give_me_my_pseudo(serv)
+        serv.privmsg("NickServ","identify %s"%(config_password))
+        log("Connected")
+        if self.debug:
+            self.chanlist=["#bot"]
+            self.play_channels=["#bot"]
+        for c in self.chanlist:
+            log("JOIN %s"%(c))
+            serv.join(c)
+        for c in self.play_channels:
+            token=time.time()-3600
+            self.play_status[c]=[0,token]
+            serv.execute_delayed(random.randrange(ttrig),self.start_enigme,(serv,c,token))
+
+    def start_enigme(self,serv,channel,token=None):
+        if self.play_status[channel][0]==0 and channel in self.play_channels:
+            ok="skip"
+            if token==self.play_status[channel][-1]:
+                ok="do_it"
+            if token==None:
+                if time.time() > self.play_status[channel][-1]+config_time_incompressible:
+                    ok="do_it"
+                else:
+                    ok="refuse"
+            if ok=="do_it":
+                enigme,indice,answer_reg,answer=self.get_enigme()
+                print "%s; %s; %s; %s"%(enigme, indice, answer_reg, answer)
+                serv.privmsg(channel,enigme)
+                token=time.time()
+                self.play_status[channel]=[1,enigme,indice,answer_reg,answer,token]
+                serv.execute_delayed(random.randrange(ttrig*3,ttrig*5),self.give_indice,(serv,channel,token))
+            elif ok=="refuse":
+                raise RefuseError
+    def give_indice(self,serv,channel,token):
+        if self.play_status[channel][0]==1:
+            if token==None:
+                # c'est donc que l'indice a été demandé
+                if self.play_status[channe][-1]+config_time_incompressible_clue<time.time():
+                    token=self.play_status[channel][-1]
+            if self.play_status[channel][-1]==token:
+                indice=self.play_status[channel][2]
+                serv.privmsg(channel,"indice : %s"%(indice))
+                self.play_status[channel][0]=2
+                serv.execute_delayed(random.randrange(ttrig*1,ttrig*3),self.give_answer,(serv,channel,token))
+    def give_answer(self,serv,channel,token):
+        if self.play_status[channel][0]==2 and self.play_status[channel][-1]==token:
+            answer=self.play_status[channel][4]
+            serv.privmsg(channel,"C'était : %s"%(answer))
+            token=time.time()
+            self.play_status[channel]=[0,token]
+            serv.execute_delayed(random.randrange(Ttrig*5,Ttrig*10),self.start_enigme,(serv,channel,token))
+
+    def get_enigme(self):
+        f=open(get_config_source_file(self.serveur))
+        t=f.read()
+        l=re.findall("%\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n",t)
+        l=[list(i) for i in l if len(i)==5]
+        l.sort(lambda x,y: cmp(int(x[4]),int(y[4])))
+        # on récupère le nombre d'occurrences le plus faible
+        mini=l[0][4]
+        # on garde que ceux qui ont le même nombre d'occurrences
+        l_mini=[en for en in l if en[4]==mini]
+        # on tire au hasard dedans
+        choisi=random.randrange(len(l_mini))
+        enigme,indice,answer_reg,answer,_=l_mini[choisi]
+        real_index=l.index(l_mini[choisi])
+        l[real_index][4]=str(int(l[real_index][4])+1)
+        f=open(get_config_source_file(self.serveur),"w")
+        f.write("%\n"+"\n%\n".join(["%s\n%s\n%s\n%s\n%s"%(i[0],i[1],i[2],i[3],i[4]) for i in l])+"\n%")
+        f.close()
+        return enigme,indice,answer_reg,answer
+
+    def pourmoi(self, serv, message):
+        pseudo=serv.get_nickname()
+        size=len(pseudo)
+        if message[:size]==pseudo and message[size]==":":
+            return (True,message[size+1:].strip(" "))
+        else:
+            return (False,message)
+
+    def on_privmsg(self, serv, ev):
+        message=ev.arguments()[0]
+        auteur = irclib.nm_to_n(ev.source())
+        try:
+            test=bot_unicode(message)
+        except UnicodeBotError:
+            serv.privmsg(auteur,
+              "Euh, tu fais de la merde avec ton encodage là, j'ai failli crasher…")
+            return
+        message=message.split()
+        cmd=message[0].lower()
+        notunderstood=False
+        if cmd=="help":
+            helpmsg_default="""Liste des commandes :
+ HELP       Affiche ce message d'aide"""
+            helpmsg_ops="""
+ JOIN       Faire rejoindre un channel (sans paramètres, donne la liste des chans actuels)
+ LEAVE      Faire quitter un channel
+ PLAY       Passe un channel en mode "jouer"
+ NOPLAY     Passe un channel en mode "ne pas jouer" """
+            helpmsg_overops="""
+ SAY        Fais envoyer un message sur un chan ou à une personne
+ STAY       Ignorera les prochains LEAVE pour un chan
+ NOSTAY     Opposé de STAY
+ STATUS     Montre l'état courant
+ DIE        Mourir"""
+            helpmsg=helpmsg_default
+            if auteur in self.ops:
+                helpmsg+=helpmsg_ops
+            if auteur in self.overops:
+                helpmsg+=helpmsg_overops
+            for ligne in helpmsg.split("\n"):
+                serv.privmsg(auteur,ligne)
+        elif cmd=="join":
+            if auteur in self.ops:
+                if len(message)>1:
+                    if message[1] in self.chanlist:
+                        serv.privmsg(auteur,"Je suis déjà sur %s"%(message[1]))
+                    else:
+                        serv.join(message[1])
+                        self.chanlist.append(message[1])
+                        serv.privmsg(auteur,"Channels : "+" ".join(self.chanlist))
+                        log("priv",auteur," ".join(message))
+                else:
+                    serv.privmsg(auteur,"Channels : "+" ".join(self.chanlist))
+            else:
+                notunderstood=True
+        elif cmd=="leave":
+            if auteur in self.ops and len(message)>1:
+                if message[1] in self.chanlist:
+                    if not (message[1] in self.stay_channels) or auteur in self.overops:
+                        serv.part(message[1])
+                        self.chanlist.remove(message[1])
+                        log("priv",auteur," ".join(message)+"[successful]")
+                    else:
+                        serv.privmsg(auteur,"Non, je reste !")
+                        log("priv",auteur," ".join(message)+"[failed]")
+                else:
+                    serv.privmsg(auteur,"Je ne suis pas sur %s"%(message[1]))
+            else:
+                notunderstood=True
+        elif cmd=="stay":
+            if auteur in self.overops:
+                if len(message)>1:
+                    if message[1] in self.stay_channels:
+                        serv.privmsg(auteur,"Je stay déjà sur %s."%(message[1]))
+                        log("priv",auteur," ".join(message)+"[failed]")
+                    else:
+                        self.stay_channels.append(message[1])
+                        serv.privmsg(auteur,"Stay channels : "+" ".join(self.stay_channels))
+                        log("priv",auteur," ".join(message)+"[successful]")
+                else:
+                    serv.privmsg(auteur,"Stay channels : "+" ".join(self.stay_channels))
+            else:
+                notunderstood=True
+        elif cmd=="nostay":
+            if auteur in self.overops:
+                if len(message)>1:
+                    if message[1] in self.stay_channels:
+                        self.stay_channels.remove(message[1])
+                        serv.privmsg(auteur,"Stay channels : "+" ".join(self.stay_channels))
+                        log("priv",auteur," ".join(message)+"[successful]")
+                    else:
+                        serv.privmsg(auteur,"Je ne stay pas sur %s."%(message[1]))
+                        log("priv",auteur," ".join(message)+"[failed]")
+            else:
+                notunderstood=True
+        elif cmd=="play":
+            if auteur in self.ops:
+                if len(message)>1:
+                    if message[1] in self.play_channels:
+                        serv.privmsg(auteur,"Je play déjà sur %s."%(message[1]))
+                        log("priv",auteur," ".join(message)+"[failed]")
+                    else:
+                        self.play_channels.append(message[1])
+                        self.play_status[message[1]]=[0,time.time()-3600]
+                        serv.privmsg(auteur,"Play channels : "+" ".join(self.play_channels))
+                        log("priv",auteur," ".join(message)+"[successful]")
+                else:
+                    serv.privmsg(auteur,"Play channels : "+" ".join(self.play_channels))
+            else:
+                notunderstood=True
+        elif cmd=="noplay":
+            if auteur in self.ops:
+                if len(message)>1:
+                    if message[1] in self.play_channels:
+                        self.play_channels.remove(message[1])
+                        serv.privmsg(auteur,"Play channels : "+" ".join(self.play_channels))
+                        log("priv",auteur," ".join(message)+"[successful]")
+                    else:
+                        serv.privmsg(auteur,"Je ne play pas sur %s."%(message[1]))
+                        log("priv",auteur," ".join(message)+"[failed]")
+            else:
+                notunderstood=True
+        elif cmd in ["states","status"]:
+            if auteur in self.overops:
+                for k in self.play_status.keys():
+                    serv.privmsg(auteur,"%s : %s"%(k,"; ".join([str(i) for i in self.play_status[k]])))
+        elif cmd=="say":
+            if auteur in self.overops and len(message)>2:
+                serv.privmsg(message[1]," ".join(message[2:]))
+                log("priv",auteur," ".join(message))
+            elif len(message)<=2:
+                serv.privmsg(auteur,"Syntaxe : SAY <channel> <message>")
+            else:
+                notunderstood=True
+        elif cmd=="die":
+            if auteur in self.overops:
+                self.die()
+        else:
+            notunderstood=True
+        if notunderstood:
+            serv.privmsg(auteur,"Je n'ai pas compris. Essaye HELP…")
+    
+    def on_pubmsg(self, serv, ev):
+        auteur = irclib.nm_to_n(ev.source())
+        canal = ev.target()
+        message = ev.arguments()[0]
+        try:
+            test=bot_unicode(message)
+        except UnicodeBotError:
+            serv.privmsg(canal,
+              "%s: Euh, tu fais de la merde avec ton encodage là, j'ai failli crasher…"%(auteur))
+            return
+        tryother=False
+        pour_moi,message=self.pourmoi(serv,message)
+        if pour_moi and message.split()!=[]:
+            cmd=message.split()[0].lower()
+            try:
+                args=" ".join(message.split()[1:])
+            except:
+                args=""
+            if cmd in ["meurs","die","crève"]:
+                if auteur in self.overops:
+                    self.die()
+                    log(canal,auteur,message+"[successful]")
+                else:
+                    serv.privmsg(canal,"%s: crève !"%(auteur))
+                    log(canal,auteur,message+"[failed]")
+            if cmd in ["meur", "meurt","meurre","meurres"]:
+                serv.privmsg(canal,'%s: Mourir, impératif, 2ème personne du pluriel : "meurs" (de rien)'%(auteur))
+            if cmd in ["part","leave","dégage"]:
+                if auteur in self.ops and (not (canal in self.stay_channels)
+                                           or auteur in self.overops):
+                    serv.part(canal,message="Éjecté par %s"%(auteur))
+                    log(canal,auteur,message+"[successful]")
+                else:
+                    serv.privmsg(canal,"%s: Non, je reste !"%(auteur))
+                    log(canal,auteur,message+"[failed]")
+    
+            if cmd in ["deviens","pseudo"]:
+                if auteur in self.ops:
+                    become=args
+                    serv.nick(become)
+                    log(canal,auteur,message+"[successful]")
+    
+            if cmd in ["coucou"]:
+                serv.privmsg(canal,"%s: coucou"%(auteur))
+            if cmd in ["ping"]:
+                serv.privmsg(canal,"%s: pong"%(auteur))
+            if cmd in ["déconnaissance","deconnaissance","énigme","enigme","encore"]:
+                if canal in self.play_channels:
+                    if self.play_status.get(canal,[-1])[0]==0:
+                        try:
+                            self.start_enigme(serv,canal)
+                        except RefuseError:
+                            serv.privmsg(canal,"%s: Je peux souffler une minute ?"%(auteur))
+                    else:
+                        serv.privmsg(canal,"%s: Rappel : %s"%(auteur,self.play_status[canal][1]))
+                else:
+                    serv.privmsg(canal,"%s: pas ici…"%(auteur))
+            else:
+                tryother=True
+        else:
+            tryother=True
+        if tryother:
+            if self.play_status.get(canal,[-1])[0] in [1,2]:
+                answer=self.play_status[canal][3]
+                if re.match(tolere(answer),unicode(message,"utf8").lower()):
+                    serv.privmsg(canal,"%s: bravo ! (C'était %s)"%(auteur,answer))
+                    token=time.time()
+                    self.play_status[canal]=[0,token]
+                    serv.execute_delayed(random.randrange(Ttrig*5,Ttrig*10),self.start_enigme,(serv,canal,token))
+
+
+if __name__=="__main__":
+    import sys
+    if len(sys.argv)==1:
+        print "Usage : deconnaisseur.py <serveur> [--debug]"
+        exit(1)
+    serveur=sys.argv[1]
+    if "debug" in sys.argv or "--debug" in sys.argv:
+        debug=True
+    else:
+        debug=False
+    serveurs={"a♡":"acoeur.crans.org","acoeur":"acoeur.crans.org","acoeur.crans.org":"acoeur.crans.org",
+              "irc":"irc.crans.org","crans":"irc.crans.org","irc.crans.org":"irc.crans.org"}
+    try:
+        serveur=serveurs[serveur]
+    except KeyError:
+        print "Server Unknown : %s"%(serveur)
+        exit(404)
+    deco=Deconnaisseur(serveur,debug)
+    deco.start()