Added statistics to VoiceStateUpdate to save playtime when disconnected manually. Moved statistics updating to statisticsUpdate function.

This commit is contained in:
Christer Warén
2020-04-01 16:58:08 +03:00
parent 94344bbecd
commit 5b5217e651
3 changed files with 64 additions and 27 deletions

View File

@ -43,16 +43,7 @@ module.exports = {
if (radio) {
if(!radio.currentGuild.statistics[radio.station.name]){
radio.currentGuild.statistics[radio.station.name] = {};
radio.currentGuild.statistics[radio.station.name].time = 0;
radio.currentGuild.statistics[radio.station.name].used = 0;
client.datastore.updateEntry(msg.guild, radio.currentGuild);
}
radio.currentGuild.statistics[radio.station.name].time = parseInt(radio.currentGuild.statistics[radio.station.name].time)+parseInt(radio.connection.dispatcher.streamTime.toFixed(0));
radio.currentGuild.statistics[radio.station.name].used = parseInt(radio.currentGuild.statistics[radio.station.name].used)+1;
client.datastore.updateEntry(msg.guild, radio.currentGuild);
statisticsUpdate(client, msg.guild, radio);
radio.connection.dispatcher.destroy();
radio.station = station;
@ -74,6 +65,8 @@ module.exports = {
try {
const connection = await voiceChannel.join();
construct.connection = connection;
let date = new Date();
construct.startTime = date.getTime();
play(msg.guild, client, url);
client.datastore.checkEntry(msg.guild.id);
@ -117,6 +110,19 @@ function play(guild, client, url) {
radio.textChannel.send(client.messageEmojis["play"] + message.play);
};
function statisticsUpdate(client, guild, radio) {
if(!radio.currentGuild.statistics[radio.station.name]){
radio.currentGuild.statistics[radio.station.name] = {};
radio.currentGuild.statistics[radio.station.name].time = 0;
radio.currentGuild.statistics[radio.station.name].used = 0;
client.datastore.updateEntry(guild, radio.currentGuild);
}
radio.currentGuild.statistics[radio.station.name].time = parseInt(radio.currentGuild.statistics[radio.station.name].time)+parseInt(radio.connection.dispatcher.streamTime.toFixed(0));
radio.currentGuild.statistics[radio.station.name].used = parseInt(radio.currentGuild.statistics[radio.station.name].used)+1;
client.datastore.updateEntry(guild, radio.currentGuild);
};
function searchStation(key, client) {
if (client.stations === null) return false;
let foundStations = [];

View File

@ -8,25 +8,26 @@ module.exports = {
execute(msg, args, client, Discord, command) {
const radio = client.radio.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
client.datastore.checkEntry(msg.guild.id);
radio.currentGuild = client.datastore.getEntry(msg.guild.id);
if(!radio.currentGuild.statistics[radio.station.name]){
radio.currentGuild.statistics[radio.station.name] = {};
radio.currentGuild.statistics[radio.station.name].time = 0;
radio.currentGuild.statistics[radio.station.name].used = 0;
client.datastore.updateEntry(msg.guild, radio.currentGuild);
}
radio.currentGuild.statistics[radio.station.name].time = parseInt(radio.currentGuild.statistics[radio.station.name].time)+parseInt(radio.connection.dispatcher.streamTime.toFixed(0));
radio.currentGuild.statistics[radio.station.name].used = parseInt(radio.currentGuild.statistics[radio.station.name].used)+1;
client.datastore.updateEntry(msg.guild, radio.currentGuild);
statisticsUpdate(client, msg.guild, radio);
radio.connection.dispatcher.destroy();
radio.voiceChannel.leave();
client.radio.delete(msg.guild.id);
msg.channel.send(client.messageEmojis["stop"] + client.messages.stop);
}
}
};
};
function statisticsUpdate(client, guild, radio) {
client.datastore.checkEntry(guild.id);
radio.currentGuild = client.datastore.getEntry(guild.id);
if(!radio.currentGuild.statistics[radio.station.name]){
radio.currentGuild.statistics[radio.station.name] = {};
radio.currentGuild.statistics[radio.station.name].time = 0;
radio.currentGuild.statistics[radio.station.name].used = 0;
client.datastore.updateEntry(guild, radio.currentGuild);
}
radio.currentGuild.statistics[radio.station.name].time = parseInt(radio.currentGuild.statistics[radio.station.name].time)+parseInt(radio.connection.dispatcher.streamTime.toFixed(0));
radio.currentGuild.statistics[radio.station.name].used = parseInt(radio.currentGuild.statistics[radio.station.name].used)+1;
client.datastore.updateEntry(guild, radio.currentGuild);
}