Added !list command

This commit is contained in:
Damien Broqua 2019-12-25 13:47:42 +01:00
parent ef694b116f
commit 5a15cdf7b4
8 changed files with 211 additions and 77 deletions

View file

@ -1,37 +1,106 @@
const moment = require('moment')
const formatString = require('../helpers/strings').formatString
class Queries {
constructor () {
this.filter = null
this.value = null
this.period = null
}
/**
* Fonction permettant de générer la query sur artist et title
* @param {Array} line
* @param {Integer} start
* @param {Boolean} artistAndTitle
*/
setBaseFilter (line, start) {
setBaseFilter (line, start, artistAndTitle) {
let value = ''
for (let i = start; i < line.length; i += 1) {
value += ' ' + line[i]
}
value = value.replace(' ', '')
const filter = {
$or: [
{
artist: formatString(value)
},
{
title: formatString(value)
}
]
this.value = value.replace(' ', '')
value = formatString(this.value)
if (artistAndTitle) {
this.filter = {
$or: [
{
artist: value
},
{
title: value
}
]
}
} else {
this.filter = {
artist: value
}
}
this.filter = filter
this.value = value
}
/**
* Fonction permettant de générer le filtre de date sur les commandes !stats et !when
* @param {String} period
*/
setPeriod (period) {
switch (period) {
case 'day':
this.period = {
$gte: moment().startOf('day'),
$lte: moment().endOf('day')
}
break
case 'week':
this.period = {
$gte: moment().startOf('week'),
$lte: moment().endOf('day')
}
break
case 'month':
this.period = {
$gte: moment().startOf('month'),
$lte: moment().endOf('day')
}
break
case 'year':
this.period = {
$gte: moment().startOf('year'),
$lte: moment().endOf('day')
}
break
case 'lastday':
this.period = {
$gte: moment().subtract('day').startOf('day'),
$lte: moment().subtract('day').endOf('day')
}
break
case 'lastweek':
this.period = {
$gte: moment().subtract(1, 'week').startOf('week'),
$lte: moment().subtract(1, 'week').endOf('week')
}
break
case 'lastmonth':
this.period = {
$gte: moment().subtract(1, 'month').startOf('month'),
$lte: moment().subtract(1, 'month').endOf('month')
}
break
case 'lastyear':
this.period = {
$gte: moment().subtract(1, 'year').startOf('year'),
$lte: moment().subtract(1, 'year').endOf('year')
}
break
default:
this.period = {}
}
}
/**
* Getter pour le filter
* @return {Object}
@ -47,6 +116,14 @@ class Queries {
getValue () {
return this.value
}
/**
* Getter pour la période
* @return {String}
*/
getPeriod () {
return this.period
}
}
module.exports = Queries