From a0e9f8938668a10603a0fcaa5554d1184fd9c709 Mon Sep 17 00:00:00 2001
From: Adrien Nunes <adrien.nunes@ensiie.fr>
Date: Tue, 12 Oct 2021 20:21:12 +0200
Subject: [PATCH] Mais qui ?

---
 commands/CommandParser.js | 20 +++++++++++++-------
 commands/CommandQui.js    | 32 ++++++++++++++++++++++++++++++++
 database/complot_db.json  |  2 +-
 vote/VoteParser.js        |  3 +++
 4 files changed, 49 insertions(+), 8 deletions(-)
 create mode 100644 commands/CommandQui.js

diff --git a/commands/CommandParser.js b/commands/CommandParser.js
index edcb15a..5b903eb 100644
--- a/commands/CommandParser.js
+++ b/commands/CommandParser.js
@@ -1,20 +1,26 @@
 const InformeMoi = require('./InformeMoi.js');
 const DatabaseCommand = require('./DatabaseCommand.js');
 const CommandVoteParser = require('./CommandVoteParser.js');
+const CommandQui = require('./CommandQui.js');
 
-class CommandParser{
-    
-    constructor(client, voteParser){
+
+class CommandParser {
+
+    constructor(client, voteParser) {
         this.client = client;
         this.informeMoi = new InformeMoi(client);
         this.databaseCommand = new DatabaseCommand(client);
         this.commandVoteParser = new CommandVoteParser(voteParser);
+        this.commandQui = new CommandQui(client);
     }
 
-    parse(message){
-        this.informeMoi.parse(message);
-        this.databaseCommand.parse(message);
-        this.commandVoteParser.parse(message);
+    parse(message) {
+        if (message.author.id !== this.client.application.id) {
+            this.informeMoi.parse(message);
+            this.databaseCommand.parse(message);
+            this.commandVoteParser.parse(message);
+            this.commandQui.parse(message);
+        }
     }
 }
 
diff --git a/commands/CommandQui.js b/commands/CommandQui.js
new file mode 100644
index 0000000..856f45c
--- /dev/null
+++ b/commands/CommandQui.js
@@ -0,0 +1,32 @@
+
+const complotDB = require('../database/ComplotDB.js');
+
+class CommandQui{
+    constructor(client){
+        this.client = client;
+        this.sentences = ["Sûrement <who>...", "<who>", "<who> !", "<who> ??", "Vous parlez de <who> ?", "C'est <who>.", "Bah, <who>.", "Bah <who> connard", "Mmmh <who> ?", "<who> ?", "<who>, on te parle"];
+        this.quiRegExp = new RegExp('[^a-z]qui[^a-z]', 'i');
+    }
+
+    getRandomQui(){
+        const actor = complotDB.getRandomActor();
+
+        return this.sentences[Math.floor(Math.random()*this.sentences.length)].replace('<who>', actor);
+    }
+
+    parse(message){
+        if(this.shouldRespond(message)){
+            message.reply(this.getRandomQui());
+        }
+    }
+
+    shouldRespond(message){
+        const resRE = message.content.match(this.quiRegExp);
+        if(resRE){
+            return message.content.slice(resRE.index).includes('?'); /**Contient un '?'  après le ' qui ' */
+        }
+        return false;
+    }
+}
+
+module.exports = CommandQui;
\ No newline at end of file
diff --git a/database/complot_db.json b/database/complot_db.json
index 5d67a55..b7a7653 100644
--- a/database/complot_db.json
+++ b/database/complot_db.json
@@ -1 +1 @@
-{"actors":["Macron","TSP","Le BDE","Les Francs-Maçons","La CIA","Laurent Prével","Mouilleron","Rioboo","Forest","Jean Lassalle","Sylvain Duriff","Rocket","Titi","Nathalie Arthaud","Le fantôme d'Hitler","JeanMarIIE","Le Bar-C","Le C-19","Michel Drucker","Sardoche","i-TV","Ta mère","Diiese","Le CBDE","Le MEDEF","L'artiste Gaber","Le grand Patronat","Te Deum","Frédéric Chaumont","Didier Raoult","Alain Soral"],"actions":["pirater Arise","vacciner la population","installer des antennes 5G","creer un nouveau variant du coronavirus","détruire Evry","bombarder TSP","faire des TikTok","comprendre les cours de Rioboo","vendre des informations aux Japonais","racheter MyPizza","annexer l'IMT-BS","radier le tout le BdE de l'AEIIE","interdire la vente d'alcool à Le Bar (c)","installer Windows sur les PCs de l'école","enlever les hentai du Baka","mettre Jean MarIIE à la tête du Bde","soudoyer des iiens","payer des petits chinois","lancer une shitstorm par mail","investir dans l'immobilier","débrancher un switch pendant une NJV"],"reasons":["gagner l'élection 2022","contrôler l'humanité","éradiquer l'humanité","instaurer une dictature","capter la 5G","gagner contre Pignôle au babyfoot","faire fermer l'ENSIIE","deban tigriz","dissoudre le Bakaclub","supprimer internet","gagner le carambar d'or","intégrer TSP","éradiquer tous les viieux","gagner la campagne BdE","prendre la place de tactac","rouvrir l'antenne de Strasbourg","obtenir tous les boucliers verts","passer master sur LoL","faire gagnér l'emote fipa","faire arriver le RER D à l'heure","préserver les iiens de souche"],"sources":["QAnon","IImondE","une amie qui travaille au gouvernement", "Réinfo Covid", "FranceSoir", "Médiavenir", "LesMoutonsRebelles", "un poste Facebook", "un twittos", "Kim Glow", "l'AFP"],"sentences":["<actor> <want> <action> pour <reason> !","Selon <source>, <actor> <want> <action> afin de <reason>.","<actor> <want> <action> rien que pour <reason>.....", "Grâce à <source>, je sais que <actor> <want> <action> pour <reason>.", "On dit que <actor> <want> <action>, tout ça pour <reason>...", "<actor> <want> <action> afin de <reason>, ça fait réfléchir...", "Vous verrez que <actor> va <action> pour <reason>, vous l'aurez lu ici en premier...", "🚨ALERTE INFO🚨 :\n <actor> <want> <action> pour <reason> \n (Source : <source>)", "<actor> <want> <action> rien que pour <reason>....."]}
\ No newline at end of file
+{"actors":["Macron","TSP","Le BDE","Les Francs-Maçons","La CIA","Laurent Prével","Mouilleron","Rioboo","Forest","Jean Lassalle","Sylvain Duriff","Rocket","Titi","Nathalie Arthaud","Le fantôme d'Hitler","JeanMarIIE","Le Bar-C","Le C-19","Michel Drucker","Sardoche","i-TV","Ta mère","Diiese","Le CBDE","Le MEDEF","L'artiste Gaber","Le grand Patronat","Te Deum","Frédéric Chaumont","Didier Raoult","Alain Soral","Cortex 91 des pyramides","Les témoins de Jéhovah","Génération identitaire","Michel"],"actions":["pirater Arise","vacciner la population","installer des antennes 5G","creer un nouveau variant du coronavirus","détruire Evry","bombarder TSP","faire des TikTok","comprendre les cours de Rioboo","vendre des informations aux Japonais","racheter MyPizza","annexer l'IMT-BS","radier le tout le BdE de l'AEIIE","interdire la vente d'alcool à Le Bar (c)","installer Windows sur les PCs de l'école","enlever les hentai du Baka","mettre Jean MarIIE à la tête du Bde","soudoyer des iiens","payer des petits chinois","lancer une shitstorm par mail","investir dans l'immobilier","débrancher un switch pendant une NJV","spéculer sur l'effondrement de l'économie africaine"],"reasons":["gagner l'élection 2022","contrôler l'humanité","éradiquer l'humanité","instaurer une dictature","capter la 5G","gagner contre Pignôle au babyfoot","faire fermer l'ENSIIE","deban tigriz","dissoudre le Bakaclub","supprimer internet","gagner le carambar d'or","intégrer TSP","éradiquer tous les viieux","gagner la campagne BdE","prendre la place de tactac","rouvrir l'antenne de Strasbourg","obtenir tous les boucliers verts","passer master sur LoL","faire gagnér l'emote fipa","faire arriver le RER D à l'heure","préserver les iiens de souche","imposer un régime communiste","empêcher pignôle (<@590627154400903228> ) de faire des blagues"],"sources":["QAnon","IImondE","une amie qui travaille au gouvernement","Réinfo Covid","FranceSoir","Médiavenir","LesMoutonsRebelles","un poste Facebook","un twittos","Kim Glow","l'AFP","ma maman","Jean-Jacques Bourdin","Stéphane Bern","CNews","Louis Fouché","Didier Raoult","Francis Lalane","Eddy Malou","mon oncle sur Whatsapp","un ami directeur de production à France Télévisions","un prix nobel désavoué par sa profession","démotivateur","Madmoizelle.com","Buzz feed","intuition"],"sentences":["<actor> <want> <action> pour <reason> !","Selon <source>, <actor> <want> <action> afin de <reason>.","<actor> <want> <action> rien que pour <reason>.....","Grâce à <source>, je sais que <actor> <want> <action> pour <reason>.","On dit que <actor> <want> <action>, tout ça pour <reason>...","<actor> <want> <action> afin de <reason>, ça fait réfléchir...","Vous verrez que <actor> va <action> pour <reason>, vous l'aurez lu ici en premier...","🚨ALERTE INFO🚨 :\n <actor> <want> <action> pour <reason> \n (Source : <source>)","<actor> <want> <action> rien que pour <reason>.....","Je sais par <source> que <actor> <want> <action> pour <reason>!!!","<actor> <want> <reason>, ça dit beaucou au sujé de sociéter"]}
\ No newline at end of file
diff --git a/vote/VoteParser.js b/vote/VoteParser.js
index 572d811..ec3c8b3 100644
--- a/vote/VoteParser.js
+++ b/vote/VoteParser.js
@@ -38,6 +38,9 @@ class VoteParser{
     }
 
     parse(message){
+        if(message.author.id === this.client.application.id){
+            return;
+        }
         if(this.categories.has(message.channelId)){
             const category = this.categories.get(message.channelId);
             const reactions = message.reactions.resolve(this.upVote);
-- 
GitLab