refactored. A strange bug persists…
This commit is contained in:
parent
942ee90eff
commit
b500d7d485
159
educ.js
159
educ.js
@ -7,61 +7,126 @@ client.on('ready', () => {
|
||||
|
||||
// l'ID du channel de test (test-bot) pour plus tard
|
||||
// var testchan_id = '691952512332202064';
|
||||
var leve_main=[];
|
||||
var pas_dacc=[];
|
||||
message = ""; // var string à compléter
|
||||
|
||||
/* Liste des réactions possibles et de leurs représentants actuel */
|
||||
var reactions = {
|
||||
'oui': {
|
||||
'prefix': ':thumbsup:',
|
||||
'description': 'Je suis d’accord',
|
||||
},
|
||||
'non': {
|
||||
'prefix': ':thumbsdown:',
|
||||
'description': 'Je ne suis pas d’accord',
|
||||
},
|
||||
'parole': {
|
||||
'prefix': ':raised_hand:',
|
||||
'description': 'Je veux parler',
|
||||
},
|
||||
'réponse': {
|
||||
'prefix': ':raised_hands:',
|
||||
'description': 'Je veux répondre rapidement',
|
||||
},
|
||||
'suffit': {
|
||||
'prefix': ':octogonal_sign:',
|
||||
'description': 'On tourne en rond',
|
||||
},
|
||||
'écoute': {
|
||||
'prefix': ':hear_no_evil:',
|
||||
'description': 'On ne s’écoute pas',
|
||||
},
|
||||
'love': {
|
||||
'prefix': ':heart_eyes:',
|
||||
'description': 'J’adore',
|
||||
},
|
||||
'dab': {
|
||||
'prefix': ':dab:',
|
||||
'description': 'Dab',
|
||||
},
|
||||
};
|
||||
for (var index in reactions) {
|
||||
reactions[index].people = []
|
||||
}
|
||||
|
||||
/* Liste des channels où on peut lire avec le dernier message que l’on y a envoyé */
|
||||
/* 1282482389371398137183: <msg> */
|
||||
var channels = {}
|
||||
|
||||
var last_post = null; /* On se souvient du derier post que ce bot a envoyé pour le virer dès que possible */
|
||||
|
||||
client.on('message', msg => {
|
||||
|
||||
// Various features
|
||||
|
||||
// ignore own messages
|
||||
if(msg.author.username === 'bod-educ-pop'){
|
||||
return;
|
||||
if(msg.content === '!educpop-reset') {
|
||||
for (var index in reactions) {
|
||||
reactions[index].people = []
|
||||
}
|
||||
reply(msg)
|
||||
msg.reply('La liste est vidée :)')
|
||||
}
|
||||
|
||||
if(msg.content === 'ping'){
|
||||
msg.reply('mais encore :thinking:');
|
||||
else if (msg.content === '!educpop-enable') {
|
||||
var id = msg.channel.id
|
||||
if (id in channels) {
|
||||
msg.reply('J’écoute déjà ce canal texte.')
|
||||
} else {
|
||||
channels[id] = null
|
||||
msg.reply('J’écoute maintenant ce canal texte.')
|
||||
}
|
||||
}
|
||||
else if (msg.content === '!educpop-disable') {
|
||||
var id = msg.channel.id
|
||||
if (id in channels) {
|
||||
delete channels[id]
|
||||
msg.reply('Je n’écoute plus ce canal texte.')
|
||||
} else {
|
||||
msg.reply('Je n’écoutais pas ce canal texte :o')
|
||||
}
|
||||
}
|
||||
else if (msg.content === '!educpop-help') {
|
||||
var text = 'Tapez simplement le mot-clé ci-dessous pour être comptabilisé. Tapez un - immédiatement suivi du mot-clé pour être retiré du compte : -oui !'
|
||||
for (var index in reactions) {
|
||||
text += '\n' + reactions[index].prefix + index + ' : ' + reactions[index].description
|
||||
}
|
||||
msg.author.send(text)
|
||||
msg.delete()
|
||||
}
|
||||
/* Listen to educ pop stuff only in authorized channels */
|
||||
else if(!(msg.channel.id in channels)) {
|
||||
return;
|
||||
}
|
||||
if(msg.author.username === 'remi.peltier'){
|
||||
msg.reply("Va bosser Rémi");
|
||||
return;
|
||||
/* save and ignore own messages */
|
||||
else if(msg.author.username === 'bod-educ-pop'){ // TODO only log it if answer to educpop
|
||||
channels[msg.channel.id] = msg;
|
||||
}
|
||||
|
||||
// TODO : changer le surnom de la personne en ce qu'elle mange
|
||||
if(msg.content === 'je mange'){
|
||||
console.log("");
|
||||
/* Educ pop stuff */
|
||||
else if(msg.content.startsWith('-')) {
|
||||
var content = msg.content.slice(1)
|
||||
if (content in reactions) {
|
||||
var reaction = reactions[content].people
|
||||
var index = reaction.indexOf(msg.author.username)
|
||||
if (index >= 0) {
|
||||
reaction.splice(index, 1)
|
||||
}
|
||||
reply(msg)
|
||||
}
|
||||
}
|
||||
|
||||
// exit if not on test channel. Might cause problem if asynchronous behavior.
|
||||
if(msg.channel.name != 'test-bot'){
|
||||
return;
|
||||
else if (msg.content in reactions) {
|
||||
var reaction = reactions[msg.content].people
|
||||
if (reaction.indexOf(msg.author.username) < 0) {
|
||||
reaction.push(msg.author.username)
|
||||
}
|
||||
reply(msg)
|
||||
}
|
||||
|
||||
// Educ pop stuff
|
||||
//
|
||||
if(msg.content === 'leve'){
|
||||
leve_main.push(msg.author.username);
|
||||
}
|
||||
if(msg.content === 'non'){
|
||||
pas_dacc.push(msg.author.username);
|
||||
}
|
||||
|
||||
/* TODO : Implémenter les messages suivants :
|
||||
* > "laisse" (je laisse la parole > on vire le pseudo de la liste "Lèvent la main"
|
||||
* > "réponse rapide" (on me met au début de la liste, et on place la personne qui est en train de parler juste derrière.
|
||||
* > autres mouvements d'educ pop : "d'accord", "ça tourne en rond", "on s'écoute plus", etc
|
||||
*/
|
||||
|
||||
message += "*Lèvent la main : " + String(leve_main);
|
||||
message += "* Pas d'accord : " + String(pas_dacc);
|
||||
|
||||
msg.reply(message);
|
||||
|
||||
msg.delete(); // marche pas, TODO : supprimer le message pour n'obtenir que les résumés.
|
||||
|
||||
message = ""; // reset message.
|
||||
});
|
||||
|
||||
|
||||
function reply (msg) {
|
||||
var text = ''
|
||||
for (var index in reactions) {
|
||||
if (reactions[index].people.length > 0)
|
||||
text += '\n' + reactions[index].prefix + String(reactions[index].people)
|
||||
}
|
||||
|
||||
if(channels[msg.channel.id]) channels[msg.channel.id].delete()
|
||||
msg.reply(text)
|
||||
msg.delete()
|
||||
}
|
||||
|
||||
client.login('NjkxOTUzMDQzMDcxMzAzNzIy.Xnnhng.pYBFO2ogooVs2AyYz8Pk6AKhMoo');
|
||||
|
Loading…
Reference in New Issue
Block a user