Compare commits
No commits in common. "f3bf26b572b1ff6f15696dd49d9aa34b343750e9" and "f9a57722af6411846710f58a234eee5ea4e437a2" have entirely different histories.
f3bf26b572
...
f9a57722af
6 changed files with 202 additions and 947 deletions
4
index.js
4
index.js
|
@ -49,6 +49,10 @@ if (!fs.existsSync(path.join(cachePath, "emojis"))) {
|
||||||
fs.mkdirSync(path.join(cachePath, "emojis"))
|
fs.mkdirSync(path.join(cachePath, "emojis"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app.get("/discHTML", (req, res) => {
|
||||||
|
res.send(pageUpdater.getActivities())
|
||||||
|
})
|
||||||
|
|
||||||
app.use(pageUpdater.middleWare)
|
app.use(pageUpdater.middleWare)
|
||||||
|
|
||||||
process.on('uncaughtException', (err, origin) => {
|
process.on('uncaughtException', (err, origin) => {
|
||||||
|
|
802
package-lock.json
generated
802
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -20,7 +20,6 @@
|
||||||
"@node-minify/core": "^8.0.6",
|
"@node-minify/core": "^8.0.6",
|
||||||
"@node-minify/uglify-js": "^8.0.6",
|
"@node-minify/uglify-js": "^8.0.6",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"glob": "^10.4.2",
|
|
||||||
"himalaya": "^1.1.0",
|
"himalaya": "^1.1.0",
|
||||||
"minify-html": "^0.0.2",
|
"minify-html": "^0.0.2",
|
||||||
"ws": "^8.16.0",
|
"ws": "^8.16.0",
|
||||||
|
|
340
pageUpdater.js
340
pageUpdater.js
|
@ -6,8 +6,7 @@ const path = require('path'),
|
||||||
htmlMinifier = require("minify-html"),
|
htmlMinifier = require("minify-html"),
|
||||||
activityToHTML = require("./overcomplicatedStatuses.js"),
|
activityToHTML = require("./overcomplicatedStatuses.js"),
|
||||||
randomThemer = require("./randomThemer.js"),
|
randomThemer = require("./randomThemer.js"),
|
||||||
himalaya = require("himalaya"),
|
himalaya = require("himalaya")
|
||||||
glob = require("glob")
|
|
||||||
|
|
||||||
var constants = JSON.parse(fs.readFileSync(path.join(__dirname, 'constants.json')))
|
var constants = JSON.parse(fs.readFileSync(path.join(__dirname, 'constants.json')))
|
||||||
|
|
||||||
|
@ -23,18 +22,6 @@ var lanyardData = undefined
|
||||||
|
|
||||||
var uptime = Date.now()
|
var uptime = Date.now()
|
||||||
|
|
||||||
var pregenFiles = []
|
|
||||||
|
|
||||||
var globResult = glob.globSync("**/static/**/*.html", { absolute: true })
|
|
||||||
for (var i = 0; i < globResult.length; i++) {
|
|
||||||
var result = globResult[i]
|
|
||||||
pregenFiles.push({
|
|
||||||
"absolutePath": result,
|
|
||||||
"path": result.substring(result.indexOf("static") + 7),
|
|
||||||
"html": undefined
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function firstToUpper(str) {
|
function firstToUpper(str) {
|
||||||
return str.charAt(0).toUpperCase() + str.slice(1)
|
return str.charAt(0).toUpperCase() + str.slice(1)
|
||||||
}
|
}
|
||||||
|
@ -53,7 +40,102 @@ function timeFormatter(seconds) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function pathReplacer(html) {
|
function converter(html) {
|
||||||
|
var startTime = Date.now()
|
||||||
|
|
||||||
|
html = html
|
||||||
|
|
||||||
|
var config = JSON.parse(fs.readFileSync(path.join(__dirname, 'config/config.json')))
|
||||||
|
|
||||||
|
var bnchName = "Beta"
|
||||||
|
var bnchSub = "beta."
|
||||||
|
|
||||||
|
if (process.env.BRANCH == "dev") {
|
||||||
|
bnchName = "Stable"
|
||||||
|
bnchSub = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
var replacers = {
|
||||||
|
"ALL_KEYWORDS": undefined,
|
||||||
|
"ALL_HIGHLIGHTS": Object.keys(highlightedWords).join(", "),
|
||||||
|
"BRANCH_NAME": bnchName,
|
||||||
|
"BRANCH_SUB": bnchSub,
|
||||||
|
"RANDOM_QUOTE": quotes[Math.floor(Math.random() * quotes.length)],
|
||||||
|
"COMMIT_COUNT": commitCount,
|
||||||
|
"QUOTE_COUNT": quotes.length,
|
||||||
|
"RANDOM_TITLE": titles[Math.floor(Math.random() * titles.length)],
|
||||||
|
"DISCORD_STATUS":
|
||||||
|
`<span style="color: ${constants.discStatuses[lanyardData.discord_status].color};" class="statusColor">${constants.discStatuses[lanyardData.discord_status].text}</span>` +
|
||||||
|
`<style>.pfp { border-color: ${constants.discStatuses[lanyardData.discord_status].color} }</style>`,
|
||||||
|
"UPTIME": uptime,
|
||||||
|
"TOPBAR": `<div id="topbar"><h3><a href="/socials">Socials</a></h3></div>`,
|
||||||
|
"CUSTOM_STATUS": () => {
|
||||||
|
if (lanyardData && lanyardData.activities[0] && lanyardData.activities[0].type == 4) {
|
||||||
|
var status = lanyardData.activities[0]
|
||||||
|
var addedHTML = "<hr/><p>"
|
||||||
|
if (status.emoji) {
|
||||||
|
if (status.emoji.id) {
|
||||||
|
addedHTML += `<img src="/emojis/${status.emoji.id}" title="${status.emoji.name}" class="emoji"/>`
|
||||||
|
} else {
|
||||||
|
addedHTML += status.emoji.name + " "
|
||||||
|
}
|
||||||
|
}
|
||||||
|
addedHTML += status.state
|
||||||
|
addedHTML += "</p>"
|
||||||
|
return addedHTML
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
},
|
||||||
|
"SELECTED_VIDEO": () => {
|
||||||
|
if (config.dailyVideoURL) {
|
||||||
|
return `<h2><hr/>Random video!</h2><p>I would call it random <em>daily</em> video but its not at all daily...</p>
|
||||||
|
<br/>
|
||||||
|
<video controls="true" src="${config.dailyVideoURL}"></video>`
|
||||||
|
}
|
||||||
|
return ``
|
||||||
|
},
|
||||||
|
"SPINCOUNT": globalSpins,
|
||||||
|
"UPTIME": timeFormatter((Date.now() - uptime) / 1000),
|
||||||
|
"LAST_LANYARD": timeFormatter((Date.now() - lastLanyardUpdate) / 1000),
|
||||||
|
"WEATHER_MODIFIER": randomThemer.returnTheme(),
|
||||||
|
"WEATHER_TEXT": "",
|
||||||
|
"ANNOUNCEMENT": fs.readFileSync(path.join(__dirname, "config/announcement.html")),
|
||||||
|
"ACTIVITIES": activityToHTML.activitiesToHTML(lanyardData),
|
||||||
|
"SOCIALS": () => {
|
||||||
|
var socials = lanyardData.socials
|
||||||
|
var html = ""
|
||||||
|
if (socials) {
|
||||||
|
var socialsTable = Object.keys(socials)
|
||||||
|
for (var i = 0; i < socialsTable.length; i++) {
|
||||||
|
var category = socialsTable[i]
|
||||||
|
var sites = socials[category]
|
||||||
|
var sitesTable = Object.keys(sites)
|
||||||
|
html += `<div class="grid-child"><div><h3>${category}</h3>`
|
||||||
|
for (var x = 0; x < sitesTable.length; x++) {
|
||||||
|
var siteName = sitesTable[x]
|
||||||
|
var siteData = sites[siteName]
|
||||||
|
if (siteData.url) {
|
||||||
|
html += `<a class="chip" href="${siteData.url}">${siteName}: ${siteData.name}</a>`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
html += "</div></div>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return html
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// <div class="grid-child">
|
||||||
|
// <div>
|
||||||
|
// <h3>Chat</h3>
|
||||||
|
// <a class="chip" href="https://matrix.to/#/@bingus_violet:matrix.violets-purgatory.dev">Matrix: @bingus_violet:​matrix.violets-purgatory.dev</a>
|
||||||
|
// <a class="chip">Discord: bingus_violet</a>
|
||||||
|
// <a class="chip">Revolt: Bingus{Violet}#5573</a>
|
||||||
|
// </div>
|
||||||
|
// </div>
|
||||||
|
|
||||||
|
replacers.ALL_KEYWORDS = "{" + Object.keys(replacers).join("}{") + "} "
|
||||||
|
|
||||||
while (html.includes("{PATH_")) {
|
while (html.includes("{PATH_")) {
|
||||||
var pagePath = html.substring(html.indexOf("{PATH_"))
|
var pagePath = html.substring(html.indexOf("{PATH_"))
|
||||||
pagePath = pagePath.substring(6, pagePath.indexOf('}'))
|
pagePath = pagePath.substring(6, pagePath.indexOf('}'))
|
||||||
|
@ -65,51 +147,62 @@ function pathReplacer(html) {
|
||||||
pageHTML = pageHTML.substring(pageHTML.indexOf('<main>') + 6, pageHTML.indexOf('</main>'))
|
pageHTML = pageHTML.substring(pageHTML.indexOf('<main>') + 6, pageHTML.indexOf('</main>'))
|
||||||
html = html.replaceAll(stringIndex, pageHTML)
|
html = html.replaceAll(stringIndex, pageHTML)
|
||||||
}
|
}
|
||||||
return html
|
|
||||||
}
|
|
||||||
|
|
||||||
function highlighter(json, full = true) {
|
var rpTable = Object.keys(replacers)
|
||||||
for (var i = 0; i < json.length; i++) {
|
|
||||||
var element = json[i]
|
|
||||||
if (element.type == "element") {
|
|
||||||
if (element.children.length > 0) {
|
|
||||||
element.children = highlighter(element.children, full)
|
|
||||||
}
|
|
||||||
} else if (element.type == "text") {
|
|
||||||
var highTable = Object.keys(highlightedWords)
|
|
||||||
|
|
||||||
for (let index = 0; index < highTable.length; index++) {
|
for (let index = 0; index < rpTable.length; index++) {
|
||||||
var term = highTable[index];
|
const text = rpTable[index];
|
||||||
var termProps = highlightedWords[term]
|
html = html.replaceAll(`{${text}}`, replacers[text])
|
||||||
|
}
|
||||||
|
|
||||||
|
if (html.includes("<body>")) {
|
||||||
|
var bodyHTML = htmlMinifier.minify(html.substring(html.indexOf("<body>") + 6, html.lastIndexOf("</body>")))
|
||||||
|
var parsedHTML = himalaya.parse(bodyHTML)
|
||||||
|
} else {
|
||||||
|
var parsedHTML = himalaya.parse(html)
|
||||||
|
}
|
||||||
|
|
||||||
var reg = term
|
function highlighter(json) {
|
||||||
if (termProps.caseInsensitive) {
|
for (var i = 0; i < json.length; i++) {
|
||||||
reg = new RegExp(`(${term})`, "gi")
|
var element = json[i]
|
||||||
|
if (element.type == "element") {
|
||||||
|
if (element.children.length > 0) {
|
||||||
|
element.children = highlighter(element.children)
|
||||||
|
}
|
||||||
|
} else if (element.type == "text") {
|
||||||
|
var highTable = Object.keys(highlightedWords)
|
||||||
|
|
||||||
|
for (let index = 0; index < highTable.length; index++) {
|
||||||
|
var term = highTable[index];
|
||||||
|
var termProps = highlightedWords[term]
|
||||||
|
|
||||||
|
var reg = term
|
||||||
|
if (termProps.caseInsensitive) {
|
||||||
|
reg = new RegExp(`(${term})`, "gi")
|
||||||
|
}
|
||||||
|
|
||||||
|
element.content = element.content.replaceAll(`{${term}}`, "TEMPORARY_REPLACE")
|
||||||
|
element.content = element.content.replaceAll(reg, "{TERM" + index + "}")
|
||||||
|
element.content = element.content.replaceAll("TEMPORARY_REPLACE", `${term}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
element.content = element.content.replaceAll(`{${term}}`, "TEMPORARY_REPLACE")
|
|
||||||
element.content = element.content.replaceAll(reg, "{TERM" + index + "}")
|
|
||||||
element.content = element.content.replaceAll("TEMPORARY_REPLACE", `${term}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (full) {
|
|
||||||
for (let index = 0; index < highTable.length; index++) {
|
for (let index = 0; index < highTable.length; index++) {
|
||||||
var termKey = "{TERM" + index + "}"
|
var termKey = "{TERM" + index + "}"
|
||||||
var termProps = highlightedWords[highTable[index]]
|
var termProps = highlightedWords[highTable[index]]
|
||||||
while (element.content.includes(termKey)) {
|
while (element.content.includes(termKey)) {
|
||||||
var termIndex = element.content.indexOf(termKey)
|
var termIndex = element.content.indexOf(termKey)
|
||||||
|
|
||||||
var spanEnd = element.content.indexOf(" ", termIndex)
|
var spanEnd = element.content.indexOf(" ", termIndex)
|
||||||
|
|
||||||
if (spanEnd == -1) {
|
if (spanEnd == -1) {
|
||||||
spanEnd = element.content.length
|
spanEnd = element.content.length
|
||||||
}
|
}
|
||||||
|
|
||||||
var endContent = element.content.substring(termIndex + termKey.length, spanEnd)
|
var endContent = element.content.substring(termIndex + termKey.length, spanEnd)
|
||||||
|
|
||||||
var spanStart = element.content.substring(0, termIndex).lastIndexOf(" ") + 1
|
var spanStart = element.content.substring(0, termIndex).lastIndexOf(" ") + 1
|
||||||
var startContent = element.content.substring(spanStart - 1, termIndex)
|
var startContent = element.content.substring(spanStart - 1, termIndex)
|
||||||
|
|
||||||
var style = termProps.style || ""
|
var style = termProps.style || ""
|
||||||
var classes = termProps.classes || ""
|
var classes = termProps.classes || ""
|
||||||
|
|
||||||
|
@ -134,149 +227,29 @@ function highlighter(json, full = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var replacement = `<span ${style} ${classes}>${startContent + highTable[index] + endContent}</span>`
|
var replacement = `<span ${style} ${classes}>${startContent + highTable[index] + endContent}</span>`
|
||||||
|
|
||||||
element.content = element.content.substring(0, spanStart) + replacement + element.content.substring(spanEnd)
|
element.content = element.content.substring(0, spanStart) + replacement + element.content.substring(spanEnd)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// element.content = element.content.replaceAll(termKey, replacement)
|
// element.content = element.content.replaceAll(termKey, replacement)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return json
|
||||||
}
|
}
|
||||||
|
|
||||||
return json
|
parsedHTML = highlighter(parsedHTML)
|
||||||
}
|
|
||||||
|
|
||||||
function converter(html, dynamic = true) {
|
parsedHTML = himalaya.stringify(parsedHTML)
|
||||||
var startTime = Date.now()
|
|
||||||
var config = JSON.parse(fs.readFileSync(path.join(__dirname, 'config/config.json')))
|
|
||||||
|
|
||||||
var staticReplacers = {
|
if (html.includes("<body>")) {
|
||||||
"ALL_HIGHLIGHTS": Object.keys(highlightedWords).join(", "),
|
html = html.substring(0, html.indexOf("<body>")) + parsedHTML + html.substring(html.indexOf("</body>") + 7)
|
||||||
"BRANCH_NAME": () => {
|
|
||||||
if (process.env.BRANCH == "dev") {
|
|
||||||
return "Stable"
|
|
||||||
}
|
|
||||||
return "Beta"
|
|
||||||
},
|
|
||||||
"BRANCH_SUB": () => {
|
|
||||||
if (process.env.BRANCH == "dev") {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return "beta."
|
|
||||||
},
|
|
||||||
"COMMIT_COUNT": commitCount,
|
|
||||||
"QUOTE_COUNT": quotes.length,
|
|
||||||
"DISCORD_STATUS": () => {
|
|
||||||
if (lanyardData) {
|
|
||||||
return `<span style="color: ${constants.discStatuses[lanyardData.discord_status].color};" class="statusColor">${constants.discStatuses[lanyardData.discord_status].text}</span>` +
|
|
||||||
`<style>.pfp { border-color: ${constants.discStatuses[lanyardData.discord_status].color} }</style>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
return "";
|
|
||||||
},
|
|
||||||
"TOPBAR": `<div id="topbar"><h3><a href="/socials">Socials</a></h3></div>`,
|
|
||||||
"CUSTOM_STATUS": () => {
|
|
||||||
if (lanyardData && lanyardData.activities[0] && lanyardData.activities[0].type == 4) {
|
|
||||||
var status = lanyardData.activities[0]
|
|
||||||
var addedHTML = "<hr/><p>"
|
|
||||||
if (status.emoji) {
|
|
||||||
if (status.emoji.id) {
|
|
||||||
addedHTML += `<img src="/emojis/${status.emoji.id}" title="${status.emoji.name}" class="emoji"/>`
|
|
||||||
} else {
|
|
||||||
addedHTML += status.emoji.name + " "
|
|
||||||
}
|
|
||||||
}
|
|
||||||
addedHTML += status.state
|
|
||||||
addedHTML += "</p>"
|
|
||||||
return addedHTML
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
},
|
|
||||||
"SELECTED_VIDEO": () => {
|
|
||||||
if (config.dailyVideoURL) {
|
|
||||||
return `<h2><hr/>Random video!</h2><p>I would call it random <em>daily</em> video but its not at all daily...</p>
|
|
||||||
<br/>
|
|
||||||
<video controls="true" src="${config.dailyVideoURL}"></video>`
|
|
||||||
}
|
|
||||||
return ``
|
|
||||||
},
|
|
||||||
"WEATHER_MODIFIER": randomThemer.returnTheme(),
|
|
||||||
"WEATHER_TEXT": "",
|
|
||||||
"ANNOUNCEMENT": fs.readFileSync(path.join(__dirname, "config/announcement.html")),
|
|
||||||
"SOCIALS": () => {
|
|
||||||
if (lanyardData && lanyardData.socials) {
|
|
||||||
var socials = lanyardData.socials
|
|
||||||
var html = ""
|
|
||||||
var socialsTable = Object.keys(socials)
|
|
||||||
for (var i = 0; i < socialsTable.length; i++) {
|
|
||||||
var category = socialsTable[i]
|
|
||||||
var sites = socials[category]
|
|
||||||
var sitesTable = Object.keys(sites)
|
|
||||||
html += `<div class="grid-child"><div><h3>${category}</h3>`
|
|
||||||
for (var x = 0; x < sitesTable.length; x++) {
|
|
||||||
var siteName = sitesTable[x]
|
|
||||||
var siteData = sites[siteName]
|
|
||||||
if (siteData.url) {
|
|
||||||
html += `<a class="chip" href="${siteData.url}">${siteName}: ${siteData.name}</a>`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
html += "</div></div>"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return html
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var realtimeReplacers = {
|
|
||||||
"ACTIVITIES": activityToHTML.activitiesToHTML(lanyardData),
|
|
||||||
"SPINCOUNT": globalSpins,
|
|
||||||
"UPTIME": timeFormatter((Date.now() - uptime) / 1000),
|
|
||||||
"LAST_LANYARD": timeFormatter((Date.now() - lastLanyardUpdate) / 1000),
|
|
||||||
"RANDOM_TITLE": titles[Math.floor(Math.random() * titles.length)],
|
|
||||||
"RANDOM_QUOTE": quotes[Math.floor(Math.random() * quotes.length)],
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dynamic) {
|
|
||||||
var replacers = realtimeReplacers
|
|
||||||
} else {
|
} else {
|
||||||
var replacers = staticReplacers
|
html = parsedHTML
|
||||||
}
|
}
|
||||||
|
|
||||||
html = pathReplacer(html)
|
html = html.replaceAll("{LOAD_TIME}", (Date.now() - startTime).toString() + "ms")
|
||||||
|
|
||||||
var rpTable = Object.keys(replacers)
|
|
||||||
|
|
||||||
for (let index = 0; index < rpTable.length; index++) {
|
|
||||||
const text = rpTable[index];
|
|
||||||
if (dynamic) {
|
|
||||||
replacers[text] = himalaya.stringify(highlighter(himalaya.parse(replacers[text])))
|
|
||||||
}
|
|
||||||
html = html.replaceAll(`{${text}}`, replacers[text])
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dynamic) {
|
|
||||||
if (html.includes("<body>")) {
|
|
||||||
var bodyHTML = htmlMinifier.minify(html.substring(html.indexOf("<body>") + 6, html.lastIndexOf("</body>")))
|
|
||||||
var parsedHTML = himalaya.parse(bodyHTML)
|
|
||||||
} else {
|
|
||||||
var parsedHTML = himalaya.parse(html)
|
|
||||||
}
|
|
||||||
|
|
||||||
parsedHTML = highlighter(parsedHTML)
|
|
||||||
|
|
||||||
parsedHTML = himalaya.stringify(parsedHTML)
|
|
||||||
if (html.includes("<body>")) {
|
|
||||||
parsedHTML = "<body>" + parsedHTML + "</body>"
|
|
||||||
html = html.substring(0, html.indexOf("<body>")) + parsedHTML + html.substring(html.indexOf("</body>") + 7)
|
|
||||||
} else {
|
|
||||||
html = parsedHTML
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dynamic) {
|
|
||||||
html = html.replaceAll("{LOAD_TIME}", (Date.now() - startTime).toString() + "ms")
|
|
||||||
}
|
|
||||||
|
|
||||||
return html
|
return html
|
||||||
}
|
}
|
||||||
|
@ -305,13 +278,7 @@ module.exports = {
|
||||||
res.contentType(path.basename(filePath))
|
res.contentType(path.basename(filePath))
|
||||||
|
|
||||||
if (filePath.includes(".html")) {
|
if (filePath.includes(".html")) {
|
||||||
for (var i = 0; i < pregenFiles.length; i++) {
|
data = converter(data, req.query)
|
||||||
if (pregenFiles[i].html && pregenFiles[i].absolutePath == filePath) {
|
|
||||||
data = pregenFiles[i].html
|
|
||||||
}
|
|
||||||
}
|
|
||||||
data = converter(data, true)
|
|
||||||
// console.log(data)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -358,16 +325,6 @@ updateCommits()
|
||||||
var lastLanyardUpdate = Date.now()
|
var lastLanyardUpdate = Date.now()
|
||||||
var lastPong = 0
|
var lastPong = 0
|
||||||
|
|
||||||
function pregenerate() {
|
|
||||||
for (var i = 0; i < pregenFiles.length; i++) {
|
|
||||||
var startTime = Date.now()
|
|
||||||
pregenFiles[i].html = converter(fs.readFileSync(pregenFiles[i].absolutePath).toString(), false)
|
|
||||||
pregenFiles[i].html = pregenFiles[i].html.replaceAll("{PREGEN_TIME}", Date.now() - startTime)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pregenerate()
|
|
||||||
|
|
||||||
function socketeer() {
|
function socketeer() {
|
||||||
var lanyard = new WebSocket('https://api.violets-purgatory.dev')
|
var lanyard = new WebSocket('https://api.violets-purgatory.dev')
|
||||||
|
|
||||||
|
@ -408,11 +365,10 @@ function socketeer() {
|
||||||
lanyardData = data.d
|
lanyardData = data.d
|
||||||
lastLanyardUpdate = Date.now()
|
lastLanyardUpdate = Date.now()
|
||||||
|
|
||||||
pregenerate()
|
|
||||||
for (var i = 0; i < lanyardData.activities.length; i++) {
|
for (var i = 0; i < lanyardData.activities.length; i++) {
|
||||||
var activity = lanyardData.activities[i]
|
var activity = lanyardData.activities[i]
|
||||||
if (activity.type == 4 && activity.emoji) {
|
if (activity.type == 4 && activity.emoji) {
|
||||||
|
|
||||||
if (activity.emoji.id) {
|
if (activity.emoji.id) {
|
||||||
if (activity.emoji.animated) {
|
if (activity.emoji.animated) {
|
||||||
var emoji = Buffer.from(await (await fetch(`https://cdn.discordapp.com/emojis/${activity.emoji.id}.gif?quality=lossless`)).arrayBuffer())
|
var emoji = Buffer.from(await (await fetch(`https://cdn.discordapp.com/emojis/${activity.emoji.id}.gif?quality=lossless`)).arrayBuffer())
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
{ACTIVITIES}
|
|
|
@ -36,7 +36,6 @@
|
||||||
<br>
|
<br>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Page generation time: {LOAD_TIME}</li>
|
<li>Page generation time: {LOAD_TIME}</li>
|
||||||
<li>Pregeneration time: {PREGEN_TIME}ms</li>
|
|
||||||
<li>Uptime: {UPTIME}</li>
|
<li>Uptime: {UPTIME}</li>
|
||||||
<li>Last Lanyard update: {LAST_LANYARD}</li>
|
<li>Last Lanyard update: {LAST_LANYARD}</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Reference in a new issue