it's the beginning of the end
rob added strict rate limits, everyone h*cking panic
|
@ -58,10 +58,16 @@ module.exports = async (app, req, res) => {
|
|||
comment.levelID = x[1] || req.params.id
|
||||
comment.playerID = x[3]
|
||||
comment.accountID = y[16]
|
||||
comment.form = ['icon', 'ship', 'ball', 'ufo', 'wave', 'robot', 'spider'][Number(y[14])]
|
||||
comment.color = (comment.playerID == "16" ? "50,255,255" : x[12] || "255,255,255")
|
||||
if (x[10] > 0) comment.percent = +x[10]
|
||||
comment.moderator = +x[11] || 0
|
||||
comment.icon = {
|
||||
form: ['icon', 'ship', 'ball', 'ufo', 'wave', 'robot', 'spider'][+y[14]],
|
||||
icon: +y[9],
|
||||
col1: +y[10],
|
||||
col2: +y[11],
|
||||
glow: +y[15] > 0
|
||||
}
|
||||
}
|
||||
|
||||
if (i == 0 && req.query.type != "commentHistory") {
|
||||
|
|
|
@ -38,7 +38,7 @@ module.exports = async (app, req, res) => {
|
|||
let topless = form == "bird" && req.query.topless
|
||||
let autoSize = req.query.size == "auto"
|
||||
let sizeParam = autoSize || (req.query.size && !isNaN(req.query.size))
|
||||
if (outline == "0") outline = false;
|
||||
if (outline == "0" || outline == "false") outline = false;
|
||||
|
||||
if (iconID && iconID.toString().length == 1) iconID = "0" + iconID;
|
||||
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
const request = require('request')
|
||||
const {GoogleSpreadsheet} = require('google-spreadsheet');
|
||||
const sheet = new GoogleSpreadsheet('1ADIJvAkL0XHGBDhO7PP9aQOuK3mPIKB2cVPbshuBBHc'); // accurate leaderboard spreadsheet
|
||||
// const request = require('request')
|
||||
// const {GoogleSpreadsheet} = require('google-spreadsheet');
|
||||
// const sheet = new GoogleSpreadsheet('1ADIJvAkL0XHGBDhO7PP9aQOuK3mPIKB2cVPbshuBBHc'); // accurate leaderboard spreadsheet
|
||||
|
||||
let lastIndex = {"stars": 0, "coins": 0, "demons": 0}
|
||||
let caches = [{"stars": null, "coins": null, "demons": null}, {"stars": null, "coins": null, "demons": null}] // 0 for JSON, 1 for GD
|
||||
// let lastIndex = {"stars": 0, "coins": 0, "demons": 0}
|
||||
// let caches = [{"stars": null, "coins": null, "demons": null}, {"stars": null, "coins": null, "demons": null}] // 0 for JSON, 1 for GD
|
||||
|
||||
module.exports = async (app, req, res, post) => {
|
||||
|
||||
return res.send([]) // this really do be a bruh moment
|
||||
|
||||
if (app.offline || !app.sheetsKey || app.endpoint != "http://boomlings.com/database/") return res.send([])
|
||||
let gdMode = post || req.query.hasOwnProperty("gd")
|
||||
let cache = caches[gdMode ? 1 : 0]
|
||||
|
|
|
@ -32,6 +32,13 @@ module.exports = async (app, req, res) => {
|
|||
x.coins = +x[13]
|
||||
x.playerID = x[2]
|
||||
x.date = x[42] + app.config.timestampSuffix
|
||||
x.icon = {
|
||||
form: ['icon', 'ship', 'ball', 'ufo', 'wave', 'robot', 'spider'][+x[14]],
|
||||
icon: +x[9],
|
||||
col1: +x[10],
|
||||
col2: +x[11],
|
||||
glow: +x[15] > 0
|
||||
}
|
||||
keys.forEach(k => delete x[k])
|
||||
})
|
||||
|
||||
|
|
|
@ -34,6 +34,13 @@ module.exports = async (app, req, res) => {
|
|||
x.coins = +x[13]
|
||||
x.usercoins = +x[17]
|
||||
x.diamonds = +x[46]
|
||||
x.icon = {
|
||||
form: ['icon', 'ship', 'ball', 'ufo', 'wave', 'robot', 'spider'][+x[14]],
|
||||
icon: +x[9],
|
||||
col1: +x[10],
|
||||
col2: +x[11],
|
||||
glow: +x[15] > 0
|
||||
}
|
||||
keys.forEach(k => delete x[k])
|
||||
})
|
||||
return res.send(scores)
|
||||
|
|
|
@ -29,7 +29,6 @@ module.exports = async (app, req, res, api, getLevels) => {
|
|||
let account = app.parseResponse(body)
|
||||
|
||||
if (!foundID && app.config.cacheAccountIDs) app.accountCache[username.toLowerCase()] = [account[16], account[2]]
|
||||
else console.log(app.accountCache)
|
||||
|
||||
let userData = {
|
||||
username: account[1],
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import url('https://fonts.googleapis.com/css?family=Roboto');
|
||||
@font-face {font-family: Oxygene2; src: url('https://gdcolon.com/assets/Oxygene2.ttf')}
|
||||
@font-face {font-family: Pusab; src: url('./../assets/Pusab.ttf')}
|
||||
|
||||
.gdButton {
|
||||
cursor: pointer;
|
||||
|
|
BIN
assets/trophies/0.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/trophies/1.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/trophies/2.png
Normal file
After Width: | Height: | Size: 5 KiB |
BIN
assets/trophies/3.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
assets/trophies/4.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/trophies/5.png
Normal file
After Width: | Height: | Size: 4 KiB |
BIN
assets/trophies/6.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
assets/trophies/7.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
|
@ -349,6 +349,7 @@
|
|||
<p>coins: Number of secret coins</p>
|
||||
<p>usercoins: Number of user coins</p>
|
||||
<p>diamonds: Number of diamonds</p>
|
||||
<p>icon: The icon preview showed next to the player's name</p>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
@ -444,6 +445,7 @@
|
|||
<p>percent: Percent on the level</p>
|
||||
<p>coins: Number of coins obtained (0-3)</p>
|
||||
<p>date: Time since score was submitted (sent as "x days/weeks/months" ago, since it's all the API sends)</p>
|
||||
<p>icon: The icon preview showed next to the player's name</p>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
@ -495,10 +497,10 @@
|
|||
<p class="red">username: The commenter's username</p>
|
||||
<p class="red">playerID: The commenter's ID</p>
|
||||
<p class="red">accountID: The commenter's account ID</p>
|
||||
<p class="red">form: The form of the commenter's icon</p>
|
||||
<p class="red">percent: The commenter's percent on the level, if provided</p>
|
||||
<p class="red">color: The RGB font color of the comment. Note that the yellow author text is not included</p>
|
||||
<p class="red">moderator: If type of moderator the commenter is. Returns 0 (none), 1 (mod) or 2 (elder, green text)</p>
|
||||
<p class="red">icon: The icon preview showed next to the commenter's name</p>
|
||||
<p class="blue">results: The total number of comments (first comment only, doesn't work with comment history)</p>
|
||||
<p class="blue">pages: The total number of pages, starting at 1</p>
|
||||
<p class="blue">range: The index of comments that were fetched</p>
|
||||
|
|
|
@ -251,7 +251,7 @@ fetch(`../api${!history ? window.location.pathname : "/comments/" + lvl.playerID
|
|||
commentHTML = !compact ? `
|
||||
<div class="commentBG ${bgCol}">
|
||||
<div class="comment" commentID="${x.ID}">
|
||||
<img class="inline" src="../icon/${userLink}?form=${x.form}" height=21% style="margin-right: 0.8%">
|
||||
<img class="inline" src="../icon/icon?form=${x.icon.form}&icon=${x.icon.icon}&col1=${x.icon.col1}&col2=${x.icon.col2}&glow=${x.icon.glow}&size=auto" height=21% style="margin-right: 0.8%">
|
||||
<a href=../${x.accountID == "0" ? `search/${x.playerID}?user` : `../u/${userLink}`}>
|
||||
<h2 class="inline gdButton ${x.accountID == "0" ? "green unregistered" : ""}">${userName}</h2></a>
|
||||
${modNumber > 0 ? `<img class="inline" src="../assets/mod${modNumber == 2 ? "-elder" : ""}.png" height=18% style="margin-left: 0.6%;">` : ""}
|
||||
|
@ -276,7 +276,7 @@ fetch(`../api${!history ? window.location.pathname : "/comments/" + lvl.playerID
|
|||
: `
|
||||
<div class="commentBG compactBG ${bgCol}">
|
||||
<div class="comment compact" commentID="${x.ID}">
|
||||
<img class="inline" src="../icon/${userLink}?form=${x.form}" height=21% style="margin-right: 0.8%">
|
||||
<img class="inline" src="../icon/icon?form=${x.icon.form}&icon=${x.icon.icon}&col1=${x.icon.col1}&col2=${x.icon.col2}&glow=${x.icon.glow}&size=auto" height=21% style="margin-right: 0.8%">
|
||||
<a href=../${x.accountID == "0" ? `search/${x.playerID}?user` : `../u/${userLink}`}>
|
||||
<h2 class="inline gdButton ${x.accountID == "0" ? "green unregistered" : ""}">${userName}</h2></a>
|
||||
${modNumber > 0 ? `<img class="inline" src="../assets/mod${modNumber == 2 ? "-elder" : ""}.png" height=18% style="margin-left: 0.6%;">` : ""}
|
||||
|
@ -368,7 +368,7 @@ $('#autoMode').click(function() {
|
|||
document.title = "[LIVE] " + document.title
|
||||
$('#liveText').show()
|
||||
$('#autoMode').attr('src', `../assets/stopbutton.png`)
|
||||
interval = setInterval(function() { appendComments(true) }, 2000)
|
||||
interval = setInterval(function() { appendComments(true) }, 3000)
|
||||
}
|
||||
else {
|
||||
document.title = document.title.slice(6)
|
||||
|
|
|
@ -70,12 +70,12 @@
|
|||
|
||||
</body>
|
||||
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazy/1.7.9/jquery.lazy.min.js"></script>
|
||||
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazy/1.7.9/jquery.lazy.plugins.min.js"></script>
|
||||
<script async type="text/javascript" src="../assets/sizecheck.js"></script>
|
||||
<script type="text/javascript" src="../assets/dragscroll.js"></script>
|
||||
<script>
|
||||
|
||||
let trophies = [1, 5, 10, 25, 50, 100, 250]
|
||||
|
||||
let demonID = Math.round(window.location.pathname.split('/')[2])
|
||||
if (!demonID || demonID > 250 || demonID < 1) window.location.href = "../../../"
|
||||
|
||||
|
@ -108,7 +108,7 @@ fetch(`https://pointercrate.com/api/v1/demons/${demonID}/`).then(res => res.json
|
|||
|
||||
<div class="center" style="position:absolute; transform:scale(0.82) translate(-28vh, -10vh); height: 10%; width: 12.5%;">
|
||||
<div class="inline" style="width: 50%; margin: 0% 20% 0% 10%; transform:translateY(-15%)"><h2 class="inline center" style="transform:scale(${1-shift[0]}) translateX(-${shift[1]}%)">${y+1}</h2></div>
|
||||
<img class="inline spaced lazyLoad" data-src="../icon/${x.player.name}" height="120%" style="margin-bottom: 0%; transform:scale(1.1)">
|
||||
<img class="inline spaced" src="../trophies/${trophies.findIndex(z => y+1 <= z) + 1}.png" height="120%" style="margin-bottom: 0%; transform:scale(1.1)">
|
||||
</div>
|
||||
|
||||
<div style="${!x.video ? "display: none; " : ""}position:absolute; width: 12.5%; height: 15%; right: 0%">
|
||||
|
@ -122,7 +122,6 @@ fetch(`https://pointercrate.com/api/v1/demons/${demonID}/`).then(res => res.json
|
|||
})
|
||||
|
||||
$('#loading').hide();
|
||||
$('.lazyLoad').Lazy({ appendScroll: '#searchBox' });
|
||||
})
|
||||
|
||||
$(document).keydown(function(k) {
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
</div>
|
||||
|
||||
<div class="popup" id="infoDiv">
|
||||
<div class="fancybox bounce center supercenter">
|
||||
<div class="fancybox bounce center supercenter" style="width: 80vh">
|
||||
<h2 class="smaller center" style="font-size: 5.5vh">Leaderboard Info</h2>
|
||||
<p class="bigger center" id="infoText" style="line-height: 5vh; margin-top: 1.5vh"></p>
|
||||
<img src="../assets/ok.png" width=20%; class="gdButton center" onclick="$('.popup').hide()">
|
||||
|
@ -75,12 +75,13 @@
|
|||
<script>
|
||||
|
||||
let sort = "stars"
|
||||
let trophies = [1, 3, 5, 10, 25, 50, 100]
|
||||
|
||||
let top250Text =
|
||||
`The <g>Top 250<> leaderboard contains the <g>top 250 players<>, sorted by <y>star<> value. However, due to <o>hackers<> flooding the leaderboard, this leaderboard has been <b>frozen<> for well over 2 years and displays <o>very outdated information<>.`
|
||||
|
||||
let accurateText =
|
||||
`The <g>Accurate Leaderboard<> is a highly accurate, hacker-proof leaderboard with <y>proper stats and positioning<> (unlike the regular one). It is managed by <b>XShadowWizardX, Pepper360, Octeract<>, and many many other helpers. You can check out their interactive <a target="_blank" href="https://docs.google.com/spreadsheets/d/10lbPnDYJXhbtlA0ls0cGjjX_osFSG559IDrTbhgPHvc"><span style="color:aqua; text-decoration: underline">leaderboard spreadsheet here<></a>.`
|
||||
`The <g>Accurate Leaderboard<> is a highly accurate, hacker-proof leaderboard with <y>proper stats and positioning<> (unlike the regular one). It is managed by <b>XShadowWizardX, Pepper360, Octeract<>, and many many other helpers. Be sure to check out their <a target="_blank" href="https://docs.google.com/spreadsheets/d/10lbPnDYJXhbtlA0ls0cGjjX_osFSG559IDrTbhgPHvc"><span style="color:aqua; text-decoration: underline">interactive leaderboard spreadsheet<></a> or join their <a target="_blank" href="https://discord.gg/Uz7pd4d"><span style="color:aqua; text-decoration: underline">Discord server<></a>.`
|
||||
|
||||
let creatorText =
|
||||
`The <g>Creators Leaderboard<> is sorted by <g>creator points<>, rather than stars. A player's <g>creator points<> (CP) is calculated by counting their number of <y>star rated<> levels, plus an extra point for every level that has been <b>featured<>, plus an additional point for <o>epic rated<> levels.`
|
||||
|
@ -108,7 +109,7 @@ function leaderboard(val) {
|
|||
$('#searchBox').html(`<div style="height: 4.5%"></div>`)
|
||||
$('.ranking').remove()
|
||||
|
||||
if (val == type && res != -1) res.forEach((x, y) => {
|
||||
if (val == type && res != -1 && res.length) res.forEach((x, y) => {
|
||||
|
||||
$('#searchBox').append(`<div class="searchresult leaderboardSlot">
|
||||
<h2 class="small inline gdButton" style="margin-top: 1.5%"><a href="../u/${x.username}">${x.username}</a></h2>
|
||||
|
@ -124,13 +125,23 @@ function leaderboard(val) {
|
|||
</h3>
|
||||
|
||||
<div class="center ranking" style="position:absolute; transform:scale(0.82) translate(-20.7vh, -20vh); height: 10%; width: 12.5%;">
|
||||
<img class="spaced lazyLoad" data-src="./icon/${x.username}" height="150%"
|
||||
style="margin-bottom: 0%; transform:scale(1.1)">
|
||||
|
||||
${type == "accurate" ? `<img class="spaced" src="./trophies/${trophies.findIndex(z => x.rank <= z) + 1}.png" height="150%" style="margin-bottom: 0%; transform:scale(1.1)">` :
|
||||
`<img class="spaced lazyLoad" data-src="./icon/icon?form=${x.icon.form}&icon=${x.icon.icon}&col1=${x.icon.col1}&col2=${x.icon.col2}&glow=${x.icon.glow}&size=auto" height="150%" style="margin-bottom: 0%; transform:scale(1.1)">`}
|
||||
|
||||
<h2 class="small" style="margin-top: 2%">${x.rank}</h2>
|
||||
</div>
|
||||
</div>`)
|
||||
})
|
||||
|
||||
|
||||
else if (type == "accurate") {
|
||||
$('#searchBox').append(`<div style="width: 100%">
|
||||
<h1 style="margin-top: 14%"class="center">The Accurate Leaderboard<br>is temporarily disabled</h1>
|
||||
<p class="center" style="padding: 0% 10%">Due to RobTop's new <span style="color: yellow">API enforcements</span>, the Accurate Leaderboard is <span style="color: cyan">no longer able to load reliably</span>. A fix is being worked on and will hopefully be released in <span style="color: lime">a day or two</span>.</p>
|
||||
</div>`)
|
||||
}
|
||||
|
||||
$('#searchBox').append('<div style="height: 4.5%"></div>')
|
||||
$('#loading').hide();
|
||||
$('.lazyLoad').Lazy({ appendScroll: '#searchBox' });
|
||||
|
|
|
@ -98,7 +98,7 @@ function leaderboard() {
|
|||
|
||||
<div class="center" style="position:absolute; transform:scale(0.82) translate(-28vh, -10vh); height: 10%; width: 12.5%;">
|
||||
<div class="inline" style="width: 50%; margin: 0% 20% 0% 10%; transform:translateY(-15%)"><h2 class="inline center" style="transform:scale(${1-shift[0]}) translateX(-${shift[1]}%)">${x.rank}</h2></div>
|
||||
<img class="inline spaced lazyLoad" data-src="../icon/${x.username}" height="120%" style="margin-bottom: 0%; transform:scale(1.1)">
|
||||
<img class="inline spaced lazyLoad" data-src="../icon/icon?form=${x.icon.form}&icon=${x.icon.icon}&col1=${x.icon.col1}&col2=${x.icon.col2}&glow=${x.icon.glow}&size=auto" height="120%" style="margin-bottom: 0%; transform:scale(1.1)">
|
||||
</div>
|
||||
|
||||
<div class="center" style="position:absolute; height: 10%; width: 12.5%;">
|
||||
|
@ -109,12 +109,10 @@ function leaderboard() {
|
|||
</div>`)
|
||||
})
|
||||
|
||||
$('.lazyLoad').Lazy({ appendScroll: '#searchBox' });
|
||||
$('#searchBox').append('<div style="height: 4.5%"></div>')
|
||||
loading = false;
|
||||
$('#loading').hide();
|
||||
$('.lazyLoad').Lazy({
|
||||
appendScroll: '#searchBox'
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<head>
|
||||
<title>#GDBrowserIsOverParty</title>
|
||||
<title>Geometry Dash Browser!</title>
|
||||
<meta charset="utf-8">
|
||||
<link href="../css/browser.css?v=1" type="text/css" rel="stylesheet">
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-135255146-3"></script><script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'UA-135255146-3');</script>
|
||||
|
@ -39,15 +39,14 @@
|
|||
|
||||
let line = 0
|
||||
let dialogue = [
|
||||
"Ah frick, here we go again.", "Happy to see me?", "Aw, that's a shame", "Wondering what happened to GDBrowser?",
|
||||
"Well, we got IP banned", "By RubRub himself", "...again", "Not entirely sure why this time", "Fear not, though.",
|
||||
"Things will be worked out ASAP", "And if I obey RubRub's orders...",
|
||||
"Hi there!", "Wondering what happened to GDBrowser?", "Well, we got IP banned", "By RubRub himself", "Probably because of spam",
|
||||
"Fear not, though.", "Things will be worked out ASAP", "And if I obey RubRub's orders...",
|
||||
"We'll be back in no time", "Plus you get to hang out with me!", "But in the meantime", "Yeah nothing is gonna work",
|
||||
"API is down as well", "But keep in mind we're on GitHub", "So you can use GDBrowser locally",
|
||||
"Gotta be big brain for that though...", "At least the icon kit is okay", "Well, mostly", "Anywhooo",
|
||||
"Enjoy your time here in the Vault", "I'm sure you'll find something to do", "Just stay six feet from me",
|
||||
"...", ".....", "Yeah that's all I have to say", "You can stop clicking now",
|
||||
"I'm just gonna repeat myself", "Like my iPod stuck on replay", "*ahem*"
|
||||
"I'm just gonna repeat myself", "*ahem*"
|
||||
]
|
||||
|
||||
$("#glubfub").click(function() {
|
||||
|
|
|
@ -92,13 +92,13 @@
|
|||
</h3>
|
||||
|
||||
<div class="lightBox center" id="iconsDiv" style="margin: 2% auto; width: 105vh">
|
||||
<img src="../icon/[[USERNAME]]?form=cube" title="Cube [[ICON]]">
|
||||
<img src="../icon/[[USERNAME]]?form=ship" title="Ship [[SHIP]]" style="height: 8%">
|
||||
<img src="../icon/[[USERNAME]]?form=ball" title="Ball [[BALL]]" >
|
||||
<img src="../icon/[[USERNAME]]?form=ufo" title="UFO [[UFO]]">
|
||||
<img src="../icon/[[USERNAME]]?form=wave" title="Wave [[WAVE]]" style="height: 7%">
|
||||
<img src="../icon/[[USERNAME]]?form=robot" title="Robot [[ROBOT]]" >
|
||||
<img src="../icon/[[USERNAME]]?form=spider" title="Spider [[SPIDER]]">
|
||||
<img src="../icon/icon?form=cube&icon=[[ICON]]&col1=[[COL1]]&col2=[[COL2]]&glow=[[GLOW]]" title="Cube [[ICON]]">
|
||||
<img src="../icon/icon?form=ship&icon=[[SHIP]]&col1=[[COL1]]&col2=[[COL2]]&glow=[[GLOW]]" title="Ship [[SHIP]]" style="height: 8%">
|
||||
<img src="../icon/icon?form=ball&icon=[[BALL]]&col1=[[COL1]]&col2=[[COL2]]&glow=[[GLOW]]" title="Ball [[BALL]]" >
|
||||
<img src="../icon/icon?form=ufo&icon=[[UFO]]&col1=[[COL1]]&col2=[[COL2]]&glow=[[GLOW]]" title="UFO [[UFO]]">
|
||||
<img src="../icon/icon?form=wave&icon=[[WAVE]]&col1=[[COL1]]&col2=[[COL2]]&glow=[[GLOW]]" title="Wave [[WAVE]]" style="height: 7%">
|
||||
<img src="../icon/icon?form=robot&icon=[[ROBOT]]&col1=[[COL1]]&col2=[[COL2]]&glow=[[GLOW]]" title="Robot [[ROBOT]]" >
|
||||
<img src="../icon/icon?form=spider&icon=[[SPIDER]]&col1=[[COL1]]&col2=[[COL2]]&glow=[[GLOW]]" title="Spider [[SPIDER]]">
|
||||
<img src="../deatheffects/[[DEATHEFFECT]].png" title="Death Effect [[DEATHEFFECT]]" id="deatheffect">
|
||||
</div>
|
||||
|
||||
|
|
3
index.js
|
@ -87,7 +87,7 @@ app.clean = function(text) {if (!text || typeof text != "string") return text; e
|
|||
|
||||
// ASSETS
|
||||
|
||||
let assets = ['css', 'assets', 'blocks', 'deatheffects', 'difficulty', 'gauntlets', 'gdicon', 'iconkitbuttons', 'levelstyle', 'objects']
|
||||
let assets = ['css', 'assets', 'blocks', 'deatheffects', 'difficulty', 'gauntlets', 'gdicon', 'iconkitbuttons', 'levelstyle', 'objects', 'trophies']
|
||||
app.use('/css', express.static(__dirname + '/assets/css'));
|
||||
app.use('/assets', express.static(__dirname + '/assets', {maxAge: "7d"}));
|
||||
app.use('/blocks', express.static(__dirname + '/assets/blocks', {maxAge: "7d"}));
|
||||
|
@ -98,6 +98,7 @@ app.use('/gdicon', express.static(__dirname + '/icons/iconkit', {maxAge: "7d"}))
|
|||
app.use('/iconkitbuttons', express.static(__dirname + '/assets/iconkitbuttons', {maxAge: "7d"}));
|
||||
app.use('/levelstyle', express.static(__dirname + '/assets/initial', {maxAge: "7d"}));
|
||||
app.use('/objects', express.static(__dirname + '/assets/objects', {maxAge: "7d"}));
|
||||
app.use('/trophies', express.static(__dirname + '/assets/trophies', {maxAge: "7d"}));
|
||||
|
||||
|
||||
// POST REQUESTS
|
||||
|
|