Added !list command
This commit is contained in:
parent
ef694b116f
commit
5a15cdf7b4
8 changed files with 211 additions and 77 deletions
101
libs/Queries.js
101
libs/Queries.js
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue