Added !list command
This commit is contained in:
parent
ef694b116f
commit
5a15cdf7b4
8 changed files with 211 additions and 77 deletions
83
libs/List.js
Normal file
83
libs/List.js
Normal file
|
@ -0,0 +1,83 @@
|
|||
const Queries = require('./Queries')
|
||||
const moment = require('moment')
|
||||
|
||||
class When extends Queries {
|
||||
constructor (models) {
|
||||
super()
|
||||
this.models = models
|
||||
}
|
||||
|
||||
/**
|
||||
* Point d'entrée
|
||||
* @param {Function} botSay
|
||||
* @param {String} where
|
||||
* @param {Array} line
|
||||
*/
|
||||
action (botSay, where, line) {
|
||||
if (line.length < 4) {
|
||||
botSay(where, 'Tu as oublié la période et ou l\'artiste !')
|
||||
return false
|
||||
}
|
||||
|
||||
let isOk = true
|
||||
this.setBaseFilter(line, 3, false)
|
||||
|
||||
const period = line[2]
|
||||
const filter = this.getFilter()
|
||||
|
||||
switch (period) {
|
||||
case 'day':
|
||||
case 'week':
|
||||
case 'month':
|
||||
case 'year':
|
||||
case 'lastday':
|
||||
case 'lastweek':
|
||||
case 'lastmonth':
|
||||
case 'lastyear':
|
||||
this.setPeriod(period)
|
||||
filter.createdAt = this.period
|
||||
break
|
||||
default:
|
||||
isOk = false
|
||||
}
|
||||
|
||||
if (!isOk) {
|
||||
botSay(where, 'Période invalide !')
|
||||
return false
|
||||
}
|
||||
|
||||
this.models.Histories
|
||||
.find(filter)
|
||||
.then(items => {
|
||||
if (items.length === 0) {
|
||||
botSay(where, `${this.getValue()} n'a pas était joué pour cette période sur ${process.env.RADIO_ALIAS}`)
|
||||
return true
|
||||
} else {
|
||||
const list = []
|
||||
|
||||
for (let i = 0; i < items.length; i += 1) {
|
||||
if (list.indexOf(items[i].title) === -1) {
|
||||
list.push(items[i].title)
|
||||
}
|
||||
}
|
||||
|
||||
// list.push('__ END __')
|
||||
let index = 0
|
||||
const max = list.length
|
||||
const _call = setInterval(() => {
|
||||
botSay(where, `${index + 1}/${max} - ${list[index]}`)
|
||||
index += 1
|
||||
if (index === list.length) {
|
||||
clearInterval(_call)
|
||||
}
|
||||
}, 750)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('ERR:', err)
|
||||
botSay(where, 'Impossible de te répondre pour le moment, j\'ai buggé...')
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = When
|
Loading…
Add table
Add a link
Reference in a new issue