2019-10-15 23:42:47 -03:00
< head >
< title > Geometry Dash Browser!< / title >
< meta charset = "utf-8" >
2022-05-19 22:30:54 -04:00
< link href = "../assets/css/browser.css?v=1" type = "text/css" rel = "stylesheet" >
2019-10-15 23:42:47 -03:00
< 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 >
< link rel = "icon" href = "../assets/coin.png" >
< meta id = "meta-title" property = "og:title" content = "Geometry Dash Browser!" >
2019-10-19 21:23:54 -03:00
< meta id = "meta-desc" property = "og:description" content = "Browse all of Geometry Dash's online features, right from this handy little website! Levels, profiles, leaderboards, comments, and more!" >
2021-04-22 18:23:31 -04:00
< meta id = "meta-image" name = "og:image" content = "https://gdbrowser.com/assets/coin.png" itemprop = "image" >
2021-01-21 22:28:04 -03:00
< meta name = "twitter:card" content = "summary" >
2019-10-15 23:42:47 -03:00
< / head >
2019-10-22 20:54:19 -03:00
< body class = "levelBG" onbeforeunload = "saveUrl()" >
2019-10-15 23:42:47 -03:00
< div id = "everything" >
< div class = "popup" id = "credits" >
< / div >
< div style = "position:absolute; bottom: 0%; left: 0%; width: 100%; pointer-events: none" >
2019-10-18 17:48:33 -03:00
< img class = "cornerPiece" src = "../assets/corner.png" width = 7%; >
2019-10-15 23:42:47 -03:00
< / div >
< div style = "position:absolute; top: 0%; left: 0%; width: 100%; pointer-events: none" >
2019-10-18 17:48:33 -03:00
< img class = "cornerPiece" src = "../assets/corner.png" width = 7%; style = "transform: scaleY(-1)" >
2019-10-15 23:42:47 -03:00
< / div >
2021-05-28 13:23:59 -04:00
< div style = "position:absolute; top: 1.7%; right: 2%; text-align: right; width: 10%;" >
< img id = "creditsButton" class = "gdButton" src = "../assets/credits.png" width = "60%" onclick = "loadCredits()" >
< / div >
2019-10-15 23:42:47 -03:00
2021-05-28 12:54:53 -04:00
< div class = "menu-achievements" style = "position:absolute; top: 5.5%; left: 3%; width: 12%;" >
< a href = "../achievements" > < img class = "gdButton" src = "../assets/achievements.png" width = "40%" > < / a >
2021-01-11 18:00:21 -03:00
< / div >
2021-05-28 12:54:53 -04:00
< div class = "menu-messages" style = "position:absolute; top: -1.7%; left: 11%; text-align: left; width: 10%;" >
< a href = "../messages" > < img class = "iconRope" src = "../assets/messagerope.png" width = "40%" > < / a >
2021-04-22 18:23:31 -04:00
< / div >
2019-10-15 23:42:47 -03:00
< div style = "position:absolute; top: -1.5%; right: 10%; text-align: right; width: 10%;" >
< a href = "../iconkit" > < img class = "iconRope" src = "../assets/iconrope.png" width = "40%" > < / a >
< / div >
2021-01-18 23:54:18 -03:00
< div id = "dl" style = "display: none; position:absolute; top: 15%; right: 0.5%; text-align: center; width: 17%" >
< h1 class = "smaller" style = "margin-bottom: 1%" > Note< / h1 >
2021-02-03 15:50:19 -03:00
< p style = "font-size: 2.2vh; margin-top: 1.2%" > < ca > Level downloading< / ca > has been < cr > blocked< / cr > by RobTop.
2021-12-03 18:30:58 -03:00
< cy > Level analysis, daily levels, and downloading extra info< / cy > will < cg > not work< / cg > until he chooses to unblock downloads.
2021-06-24 19:24:08 -04:00
These features still work < ca > < a class = "underline" target = "_blank" href = "https://github.com/GDColon/GDBrowser" > locally< / a > < / ca > and on < ca > < a class = "underline" href = "../gdps" > private servers< / a > < / ca > < / p >
2021-01-18 23:54:18 -03:00
< / div >
2019-10-15 23:42:47 -03:00
< div class = "supercenter center" id = "menuButtons" style = "bottom: 5%;" >
< table >
2021-05-28 13:23:59 -04:00
< tr class = "menuButtonList" >
2022-01-11 15:25:59 -03:00
< td > < a tabindex = "1" href = "./search/*?type=saved" > < img class = "menubutton menu-saved" src = "../assets/category-saved.png" title = "Saved Levels" > < / a > < / td >
< td > < a tabindex = "1" href = "./daily" > < img class = "menubutton menu-daily" src = "../assets/category-daily.png" title = "Daily Level" > < / a > < / td >
< td style = "display: block" id = "menu_weekly" > < a tabindex = "1" href = "./weekly" > < img class = "menubutton menu-weekly" src = "../assets/category-weekly.png" title = "Weekly Demon" > < / a > < / td >
< td style = "display: none" id = "menu_featured" > < a tabindex = "1" href = "./search/*?type=featured" > < img class = "menubutton menu-featured" src = "../assets/category-featured.png" title = "Featured" > < / a > < / td >
< td > < a tabindex = "1" href = "./gauntlets" > < img class = "menubutton menu-gauntlets" src = "../assets/category-gauntlets.png" title = "Gauntlets" > < / a > < / td >
2019-10-15 23:42:47 -03:00
< / tr >
2021-05-28 13:23:59 -04:00
< tr class = "menuButtonList" >
2022-01-11 15:25:59 -03:00
< td > < a tabindex = "1" href = "./leaderboard" > < img class = "menubutton menu-leaderboard" src = "../assets/category-scores.png" title = "Scores" > < / a > < / td >
2020-11-14 00:32:46 -03:00
<!-- <img src="./assets/exclamation.png" style="position: absolute; height: 18%; left: 3.5%; bottom: 23%; pointer - events: none; z - index: 50;"> -->
2022-01-11 15:25:59 -03:00
< td > < a tabindex = "1" href = "./search/*?type=hof" > < img class = "menubutton menu-hof" src = "../assets/category-hof.png" title = "Hall Of Fame" > < / a > < / td >
< td > < a tabindex = "1" href = "./mappacks" > < img class = "menubutton menu-mappacks" src = "../assets/category-packs.png" title = "Map Packs" > < / a > < / td >
< td > < a tabindex = "1" href = "./search" > < img class = "menubutton menu-search" src = "../assets/category-search.png" title = "Search" > < / a > < / td >
2019-10-15 23:42:47 -03:00
< / tr >
< / table >
2022-05-19 22:30:54 -04:00
< p style = "margin-bottom: 2%" > Website created by < a class = "menuLink" href = "https://twitter.com/TheRealGDColon" title = "Colon" > Colon< / a > :< br > Pretty much everything other than that belongs to < a class = "menuLink" href = "http://robtopgames.com" title = "RobTop Games" > RobTop Games< / a > .< / p >
< p style = "margin-top: 0%" > < a class = "menuLink" href = "https://gdcolon.com/tools" title = "GD Tools" > GD Tools< / a >
2019-10-15 23:42:47 -03:00
2022-05-19 22:30:54 -04:00
< a class = "menuLink" href = "https://gdcolon.com" title = "API" > More Projects< / a >
2019-10-16 00:29:47 -03:00
2022-01-11 15:25:59 -03:00
< a class = "menuLink" href = "https://github.com/GDColon/GDBrowser" title = "GitHub" > GitHub< / a >
2019-10-15 23:42:47 -03:00
2022-01-11 15:25:59 -03:00
< a class = "menuLink" href = "https://store.steampowered.com/app/322170/Geometry_Dash/" title = "Buy Geometry Dash!" > Buy Geometry Dash!< / a > < / p >
2019-10-15 23:42:47 -03:00
< / div >
2021-05-28 12:54:53 -04:00
< div style = "position:absolute; bottom: 17%; right: 7%; width: 9%; text-align: right; pointer-events: none" >
< img src = "../assets/privateservers.png" width = 85%;" >
< / div >
< div style = "position:absolute; bottom: 2.5%; right: 1.5%; text-align: right; width: 18%;" >
2022-01-11 15:25:59 -03:00
< a href = "../gdps" title = "GD Private Servers" > < img class = "gdButton" src = "../assets/basement.png" width = "40%" > < / a >
2021-05-28 12:54:53 -04:00
< / div >
2019-10-15 23:42:47 -03:00
< div class = "center" width = "100%" style = "margin-top: 2%" >
< img src = "../assets/gdlogo.png" height = "11.5%" > < br >
< img id = "browserlogo" src = "../assets/browser.png" height = "7%" style = "margin: 0.5% 0% 0% 30%" >
< / div >
2020-12-08 23:28:09 -03:00
< div id = "noDaily" style = "display: none;" >
< div class = "copied center noClick" style = "position:absolute; top: 29%; left: 50%; transform: translate(-50%,-50%); width: 90vh; background-color: rgba(0, 0, 0, 0.7);" >
< h1 class = "smaller noSelect" > No active < span id = "noLevel" > daily< / span > level!< / h1 >
< / div >
< / div >
2019-10-15 23:42:47 -03:00
< / div >
< / body >
2022-05-19 22:30:54 -04:00
< script type = "text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" > < / script >
< script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/pixi.js/6.2.2/browser/pixi.js" > < / script >
< script type = "text/javascript" src = "../iconkit/icon.js" > < / script >
2022-05-29 13:18:14 -04:00
< script type = "text/javascript" src = "../global.js?v=1" > < / script >
2019-10-15 23:42:47 -03:00
< script >
let page = 1
$('#browserlogo').css('filter', `hue-rotate(${Math.floor(Math.random() * (330 - 60)) + 60}deg) saturate(${Math.floor(Math.random() * (150 - 100)) + 100}%)`)
2020-10-13 11:25:07 -03:00
let xButtonPos = '43%'
let lastPage
2020-12-08 23:28:09 -03:00
let noDaily = (window.location.search == "?daily=1")
let noWeekly = (window.location.search == "?daily=2")
if (noDaily || noWeekly) {
if (noWeekly) $('#noLevel').html("weekly")
$('#noDaily').fadeIn(200).delay(500).fadeOut(500)
window.history.pushState(null, null, "/")
}
2019-10-15 23:42:47 -03:00
function loadCredits() {
$('.subCredits').hide()
$('#credits' + page).show()
$('#credits').show()
2020-10-13 11:25:07 -03:00
if (page == lastPage) $('#closeCredits').css('height', '52%')
else $('#closeCredits').css('height', xButtonPos)
2022-05-19 22:30:54 -04:00
$('.creditsIcon:not(".creditLoaded"):visible').each(async function() { // only load icons when necessary
$(this).addClass('creditLoaded')
let profile = await Fetch(`./api/profile/${$(this).attr('ign')}?forceGD=1`).catch(e => {}) || {}
$(this).append(`< gdicon cacheID = ${profile.playerID} iconID = ${profile.icon} col1 = "${profile.col1}" col2 = "${profile.col2}" glow = "${profile.glow}" > < / gdicon > `)
renderIcons()
2020-11-16 13:38:03 -03:00
})
2019-10-15 23:42:47 -03:00
}
2022-05-19 22:30:54 -04:00
Fetch(`./api/credits`).then(async res => {
2019-10-21 00:33:01 -03:00
2020-10-13 11:25:07 -03:00
lastPage = res.credits.length + 1
2022-05-19 22:30:54 -04:00
res.credits.forEach(async (x, y) => {
$('#credits').append(`< div id = "credits${y+1}" class = "subCredits" style = "display: none;" >
< img class = "gdButton" src = "../assets/arrow-left.png" style = "${y == 0 ? " display: none ; " : " " } position: absolute ; top: 45 % ; right: 75 % ; width: 4 . 5 % " tabindex = "0" onclick = "page -= 1; loadCredits()" >
2019-10-21 00:33:01 -03:00
< div class = "brownBox center supercenter" style = "width: 80vh; height: 43%; padding-top: 1.5%; padding-bottom: 3.5%;" >
2021-07-04 15:43:58 -04:00
< h1 > ${x.header}< / h1 >
2022-01-11 15:25:59 -03:00
< h2 style = "margin-bottom: 1.5%; margin-top: 1.5%" class = "gdButton biggerShadow" > < a href = "https://gdbrowser.com/u/${x.ign || x.name}" title = ${x.name} > ${x.name}< / h2 > < / a >
2022-05-19 22:30:54 -04:00
< div class = "creditsIcon" ign = "${x.ign || x.name}" > < / div >
2022-01-11 15:25:59 -03:00
< a target = _blank href = "${x.youtube[0]}" title = "YouTube" > < img src = "../assets/${x.youtube[1]}.png" width = "11%" class = "gdButton" > < / a >
< a target = _blank href = "${x.twitter[0]}" title = "Twitter" > < img src = "../assets/${x.twitter[1]}.png" width = "11%" class = "sideSpace gdButton" > < / a >
< a target = _blank href = "${x.github[0]}" title = "GitHub" > < img src = "../assets/${x.github[1]}.png" width = "11%" class = "sideSpace gdButton" > < / a >
2019-10-21 00:33:01 -03:00
< br >
< / div >
2022-05-19 22:30:54 -04:00
< img class = "gdButton" src = "../assets/arrow-right.png" style = "position: absolute; top: 45%; left: 75%; width: 4.5%" tabindex = "0" onclick = "page += 1; loadCredits()" >
< / div > `)
2019-10-21 00:33:01 -03:00
})
2020-10-13 11:25:07 -03:00
$('#credits').append(`< div id = "credits${lastPage}" class = "subCredits" style = "display: none;" >
< div id = "specialthanks" class = "brownBox center supercenter" style = "width: 80vh; height: 55%; padding-top: 1.5%; padding-bottom: 3.5%;" >
2019-11-05 20:43:04 -03:00
< h1 > Special Thanks!< / h1 > < br >
2019-10-21 00:33:01 -03:00
< / div >
2022-05-19 22:30:54 -04:00
< img class = "gdButton" src = "../assets/arrow-left.png" style = "position: absolute; top: 45%; right: 75%; width: 4.5%" tabindex = "0" onclick = "page -= 1; loadCredits()" >
2019-10-21 00:33:01 -03:00
< / div > `)
2022-05-19 22:30:54 -04:00
res.specialThanks.forEach(async (x, y) => {
let n = x.split("/")
2019-11-05 20:43:04 -03:00
$('#specialthanks').append(`< div class = "specialThanks" >
2022-05-19 22:30:54 -04:00
< h2 class = "gdButton smaller" > < a href = "https://gdbrowser.com/u/${n[1] || n[0]}" title = ${n[0]} > ${n[0]}< / h2 > < / a >
< div class = "creditsIcon specialThanksIcon" ign = "${n[1] || n[0]}" > < / div >
< / div > `)
})
2019-10-21 00:33:01 -03:00
2022-05-19 22:30:54 -04:00
$('#credits').append(`< div id = "closeCredits" class = "center supercenter" style = "z-index: 10; width: 80vh; height: ${xButtonPos}%; pointer-events: none;" >
2022-01-11 15:25:59 -03:00
< img class = "closeWindow gdButton" src = "../assets/close.png" width = "14%" style = "position: absolute; top: -24%; left: -7vh; pointer-events: all;" tabindex = "0" onclick = "$('#credits').hide(); page = 1;" title = "Close" > < / div > `)
2019-10-21 00:33:01 -03:00
2019-10-21 12:46:50 -03:00
$(document).keydown(function(k) {
2019-10-15 23:42:47 -03:00
if ($('#credits').is(':hidden')) return
if (k.which == 37 & & page > 1) { //left
page -= 1; loadCredits();
}
2020-10-13 11:25:07 -03:00
if (k.which == 39 & & page < lastPage ) { / / right
2019-10-15 23:42:47 -03:00
page += 1; loadCredits();
2019-10-21 12:46:50 -03:00
}
2019-10-15 23:42:47 -03:00
});
2019-10-22 20:54:19 -03:00
});
2019-10-15 23:42:47 -03:00
2022-01-11 15:25:59 -03:00
< / script >