@2 - Gestion des commandes actives

This commit is contained in:
dbroqua 2020-01-10 20:55:53 +01:00
parent ab7530024e
commit deb5762956
2 changed files with 129 additions and 38 deletions

View File

@ -175,52 +175,106 @@ const botSay = (where, what, dontDisplayRadio, forceSend) => {
const actions = (where, message, from) => {
const exploded = message.split(' ')
let allowedCmds = ['ALL']
if (process.env.AVAILABLE_CMD) {
allowedCmds = process.env.AVAILABLE_CMD.split(',')
}
if (where.indexOf('#') === 0 && process.env[`AVAILABLE_CMD_${where.replace('#', '')}`]) {
allowedCmds = process.env[`AVAILABLE_CMD_${where.replace('#', '')}`].split(',')
}
const unknowmCmd = () => {
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!help') !== -1) {
botSay(where, 'Commande inconnue, tape !help si tu es perdu', false, true)
} else {
botSay(where, 'Commande inconnue...', false, true)
}
}
// Le message publié est pour le bot
if (exploded[0].indexOf(process.env.IRC_NICKNAME) === 0) {
switch (exploded[1]) {
case '!artist':
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!artist') !== -1) {
artistSong.action(exploded[1].replace('!', ''), botSay, from, currentSong, exploded)
} else {
unknowmCmd()
}
break
case '!song':
artistSong.action(exploded[1].replace('!', ''), botSay, from, currentSong, exploded)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!song') !== -1) {
artistSong.action(exploded[1].replace('!', ''), botSay, from, currentSong, exploded)
} else {
unknowmCmd()
}
break
case '!help':
Help.show(botSay, where, exploded)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!help') !== -1) {
Help.show(botSay, where, exploded, allowedCmds)
} else {
unknowmCmd()
}
break
case '!when':
when.action(botSay, where, exploded)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!when') !== -1) {
when.action(botSay, where, exploded)
} else {
unknowmCmd()
}
break
case '!stats':
stats.action(botSay, where, exploded)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!stats') !== -1) {
stats.action(botSay, where, exploded)
} else {
unknowmCmd()
}
break
case '!list':
list.action(botSay, where, exploded)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!list') !== -1) {
list.action(botSay, where, exploded)
} else {
unknowmCmd()
}
break
case '!notifications':
preferences.notifications(botSay, where, from, exploded)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!notifications') !== -1) {
preferences.notifications(botSay, where, from, exploded)
} else {
unknowmCmd()
}
break
case '!stream':
botSay(where, process.env.PUBLIC_RADIO_STREAM)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!stream') !== -1) {
botSay(where, process.env.PUBLIC_RADIO_STREAM)
} else {
unknowmCmd()
}
break
case '!mute':
if (exploded[2] && ['on', 'off', 'state'].indexOf(exploded[2]) !== -1) {
switch (exploded[2]) {
case 'on':
isMute = true
botSay(where, "Pff ! c'est toujours pareil ici :'(", false, true)
break
case 'off':
isMute = false
botSay(where, "Merci ! j'avais tellement de chose à te dire...", false, true)
break
default:
botSay(where, isMute ? 'Je ne dirais rien !' : "T'inquiète ! tu vas l'avoir ta notif !", false, true)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!mute') !== -1) {
if (exploded[2] && ['on', 'off', 'state'].indexOf(exploded[2]) !== -1) {
switch (exploded[2]) {
case 'on':
isMute = true
botSay(where, "Pff ! c'est toujours pareil ici :'(", false, true)
break
case 'off':
isMute = false
botSay(where, "Merci ! j'avais tellement de chose à te dire...", false, true)
break
default:
botSay(where, isMute ? 'Je ne dirais rien !' : "T'inquiète ! tu vas l'avoir ta notif !", false, true)
}
} else {
botSay(where, '!help mute', false, true)
}
} else {
botSay(where, '!help mute', false, true)
unknowmCmd()
}
break
default:
botSay(where, 'Commande inconnue, tape !help si tu es perdu', false, true)
unknowmCmd()
break
}
}

View File

@ -9,46 +9,83 @@ class Help {
* @param {Function} say
* @param {String} where
* @param {Array} args
* @param {Array} allowedCmds
*/
static show (say, where, args) {
static show (say, where, args, allowedCmds) {
if (args.length > 2) {
switch (args[2]) {
case '!artist':
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!artist') !== -1) {
Help.showArtistSong(say, where, args)
}
break
case '!song':
Help.showArtistSong(say, where, args)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!song') !== -1) {
Help.showArtistSong(say, where, args)
}
break
case '!stats':
Help.showStats(say, where)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!stats') !== -1) {
Help.showStats(say, where)
}
break
case '!when':
Help.showWhen(say, where)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!when') !== -1) {
Help.showWhen(say, where)
}
break
case '!list':
Help.showList(say, where)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!list') !== -1) {
Help.showList(say, where)
}
break
case '!notifications':
Help.showNotifications(say, where)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!notifications') !== -1) {
Help.showNotifications(say, where)
}
break
case '!stream':
Help.showStream(say, where)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!stream') !== -1) {
Help.showStream(say, where)
}
break
case '!mute':
Help.showMute(say, where)
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!mute') !== -1) {
Help.showMute(say, where)
}
break
default:
break
}
} else {
this.say(say, where, 'IRC Radio Bot :: Help')
this.say(say, where, '!artist <add/del> {nom à sauvegarder si différent du morceau en cours}')
this.say(say, where, '!song <add/del> {nom à sauvegarder si différent du morceau en cours}')
this.say(say, where, '!stats <period> {artist/song}')
this.say(say, where, '!when <period> <artist/song>')
this.say(say, where, '!list <period> <artist/song>')
this.say(say, where, '!help {command}')
this.say(say, where, '!notifications <on/off/state>')
this.say(say, where, '!stream')
this.say(say, where, '!mute <on/off/state>')
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!artist') !== -1) {
this.say(say, where, '!artist <add/del> {nom à sauvegarder si différent du morceau en cours}')
}
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!song') !== -1) {
this.say(say, where, '!song <add/del> {nom à sauvegarder si différent du morceau en cours}')
}
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!stats') !== -1) {
this.say(say, where, '!stats <period> {artist/song}')
}
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!when') !== -1) {
this.say(say, where, '!when <period> <artist/song>')
}
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!list') !== -1) {
this.say(say, where, '!list <period> <artist/song>')
}
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!help') !== -1) {
this.say(say, where, '!help {command}')
}
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!notifications') !== -1) {
this.say(say, where, '!notifications <on/off/state>')
}
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!stream') !== -1) {
this.say(say, where, '!stream')
}
if (allowedCmds[0] === 'ALL' || allowedCmds.indexOf('!mute') !== -1) {
this.say(say, where, '!mute <on/off/state>')
}
}
this.say(say, where, '__ END __')
}