discord-jellyfin-bot/src/interactivemsghandler.js
2020-10-06 00:47:26 +02:00

63 lines
1.6 KiB
JavaScript

const InterActivePlayMessage = require("./InterActivePlayMessage");
const CONFIG = require("../config.json");
var iapm;
var updateInterval;
function init (message, title, artist, imageURL, itemURL, getProgress, onPrevious, onPausePlay, onStop, onNext, onRepeat, playlistLenth) {
if (typeof iapm !== "undefined") {
destroy();
}
iapm = new InterActivePlayMessage(message, title, artist, imageURL, itemURL, getProgress, onPrevious, onPausePlay, onStop, onNext, onRepeat, playlistLenth);
}
function destroy () {
if (typeof iapm !== "undefined") {
iapm.destroy();
iapm = undefined;
} else {
throw Error("No Interactive Message Found");
}
if (updateInterval !== "undefined") {
clearInterval(updateInterval);
updateInterval = undefined;
}
}
function hasMessage () {
if (typeof iapm === "undefined") {
return false;
} else {
return true;
}
}
/**
*
* @param {Function} callback function to retrieve current ticks
*/
function startUpate (callback) {
if (typeof CONFIG["interactive-seek-bar-update-intervall"] === "number" && CONFIG["interactive-seek-bar-update-intervall"] > 0) {
updateInterval = setInterval(() => {
iapm.updateProgress(callback());
}, CONFIG["interactive-seek-bar-update-intervall"]);
}
}
function updateCurrentSongMessage (title, artist, imageURL, itemURL, ticksLength, playlistIndex, playlistLenth) {
if (typeof iapm !== "undefined") {
iapm.updateCurrentSongMessage(title, artist, imageURL, itemURL, ticksLength, playlistIndex, playlistLenth);
} else {
throw Error("No Interactive Message Found");
}
}
module.exports = {
init,
destroy,
hasMessage,
startUpate,
updateCurrentSongMessage
};