const path = require("path"), fs = require("fs") var constants = JSON.parse(fs.readFileSync(path.join(__dirname, 'constants.json'))) function makeCompat(string="") { return string.replaceAll("<", "<").replaceAll(">", ">") } function timeFormatter(seconds) { seconds = Math.ceil(seconds / 1000) var minutes = Math.floor(seconds / 60) if (seconds % 60 < 10) { return `${minutes}:0${seconds % 60}` } else { return `${minutes}:${seconds % 60}` } } function gameTimeFormatter(seconds) { seconds = Math.ceil(seconds / 1000) var minutes = Math.ceil(seconds / 60) var hours = Math.floor(minutes / 60) if (seconds <= 60) { return 'about ' + seconds + ' seconds' } else if (minutes < 60) { return `${minutes} Minutes` } return `${hours} hours and ${minutes % 60} minutes` } function onlyIfExists(string, check) { if (check) { return string } else { return "" } } module.exports = { activitiesToHTML: (lanyardData, cachedImages) => { var debounce = false var addedHTML = "" if (lanyardData && lanyardData.activities.length > 0) { for (let index = 0; index < lanyardData.activities.length; index++) { const activity = lanyardData.activities[index]; var found = false for (let index = 0; index < lanyardData.activities.length; index++) { const act = lanyardData.activities[index] if (act.name == activity.name) { if (Object.keys(act).length > Object.keys(activity).length) { found = true } } } if (found) { continue } function get_img(activity, size = "large_image") { return "https://cache.violets-purgatory.dev/cached/byID/" + activity.id + "?size=" + size + "&url=" + activity.assets[size] } function activityTime() { if (activity.timestamps) { if (activity.timestamps.start) { if (activity.timestamps.end) { var timeLeft = Math.round((activity.timestamps.end - Date.now()) / 1000) var totalTime = Math.round((activity.timestamps.end - activity.timestamps.start) / 1000) return `
${timeFormatter((Date.now() - activity.timestamps.start))}
${timeFormatter((activity.timestamps.end - activity.timestamps.start))}
${gameTimeFormatter((Date.now() - activity.timestamps.start))}
` } } else if (activity.timestamps.end) { return `${timeFormatter((activity.timestamps.end - Date.now()))} left
` } } } if (activity.type != 4 && activity.assets) { var time = activity.created_at if (activity.timestamps) { time = activity.timestamps.start } if (!activity.assets) { activity.assets = { "large_text": "", "small_text": "" } } var text1 = onlyIfExists("" + makeCompat(activity.song) + "", activity.song) || activity.details var text2 = onlyIfExists("By: " + activity.artist, activity.artist) || activity.state var text3 = onlyIfExists("On: " + activity.album, activity.album != activity.song && activity.album) addedHTML += `${activity.name}
${onlyIfExists("" + text1 + "
", text1)} ${onlyIfExists("" + makeCompat(text2) + "
", text2)} ${onlyIfExists("" + makeCompat(text3) + "
", text3)} ${onlyIfExists(activityTime(), activityTime())}