From 680d4962a0d24a2f744027046810c14706f3de07 Mon Sep 17 00:00:00 2001 From: awesomepandapig <34806109+awesomepandapig@users.noreply.github.com> Date: Sat, 30 Jul 2022 03:03:29 -0700 Subject: Add files via upload --- LICENSE | 21 + README.md | 19 + index.html | 700 +++ index.js | 205 + leaderboard.json | 1 + package-lock.json | 1614 +++++++ package.json | 22 + public_html/MinecraftColorCodes.min.3.7.js | 1 + public_html/android-chrome-192x192.png | Bin 0 -> 4289 bytes public_html/android-chrome-512x512.png | Bin 0 -> 16598 bytes public_html/apple-touch-icon.png | Bin 0 -> 3603 bytes public_html/favicon-16x16.png | Bin 0 -> 556 bytes public_html/favicon-32x32.png | Bin 0 -> 743 bytes public_html/favicon.ico | Bin 0 -> 34494 bytes public_html/guide.html | 370 ++ public_html/guide.json | 1 + public_html/index.html | 462 ++ public_html/leaderboard.html | 111 + public_html/robots.txt | 0 stderr.log | 6896 ++++++++++++++++++++++++++++ swagger.json | 73 + 21 files changed, 10496 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 index.html create mode 100644 index.js create mode 100644 leaderboard.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public_html/MinecraftColorCodes.min.3.7.js create mode 100644 public_html/android-chrome-192x192.png create mode 100644 public_html/android-chrome-512x512.png create mode 100644 public_html/apple-touch-icon.png create mode 100644 public_html/favicon-16x16.png create mode 100644 public_html/favicon-32x32.png create mode 100644 public_html/favicon.ico create mode 100644 public_html/guide.html create mode 100644 public_html/guide.json create mode 100644 public_html/index.html create mode 100644 public_html/leaderboard.html create mode 100644 public_html/robots.txt create mode 100644 stderr.log create mode 100644 swagger.json diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..918b3e4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 awesomepandapig + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..02eafb1 --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# skyblock.bingo + +skyblock.bingo allows you to view your [Hypixel Skyblock](https://hypixel.net/categories/skyblock.194/) bingo card, share your bingo progress with others, and view guides for how to solve the current bingo challenge! + +Website: https://skyblock.bingo + +## Features + +- View your current bingo card +- View the goals you have left to complete +- View guides for how to complete the bingo goals +- View the top one-hundred bingo players +- An API for getting a player's bingo stats + +![XessDx Bingo](https://user-images.githubusercontent.com/34806109/163301430-cc68de26-3d49-4f1a-9734-a49b68571c51.png) + +## Contributing + +Open a pull request and I will look into adding the feature! diff --git a/index.html b/index.html new file mode 100644 index 0000000..c99c328 --- /dev/null +++ b/index.html @@ -0,0 +1,700 @@ + + + + + + + + + + + + + + + + skyblock.bingo + + + + +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+ Playerhead Image +

+

*Bingo Rank: none

+

Points: 0

+

Completed: 0/20

+
+
+
+
+
+ +
+
+
+

Tier 1

+
+ +

Tier 2

+
+ +

Tier 3

+
+ +

Tier 4

+
+ +

Tier 5

+
+ +

Community

+
+
+
+
+ + + + + \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..27920e0 --- /dev/null +++ b/index.js @@ -0,0 +1,205 @@ +const dotenv = require('dotenv').config(); +const fetch = require('node-fetch'); +const express = require('express'); +const cors = require('cors'); +const bodyParser = require('body-parser'); +const fs = require('fs'); + +const app = express(); +app.set('views', './views'); +app.set('view engine', 'ejs'); +app.use(bodyParser.urlencoded({ extended: false })); +app.use(bodyParser.json()); +app.use(cors()); +const port = process.env.PORT; +const origin = process.env.ORIGIN; +const key = process.env.API_KEY; + +var corsOptions = { + origin: origin, + optionsSuccessStatus: 200 +} + +const { body, validationResult } = require('express-validator'); + +let leaderboard = JSON.parse(fs.readFileSync('leaderboard.json')); +let blacklist = JSON.parse(fs.readFileSync('blacklist.json')); +let blacklist_temp = JSON.parse(JSON.stringify(blacklist)); + +app.get('/api', (req, res) => { + res.sendFile(__dirname + '/swagger.html'); +}) + +app.get('/api/swagger.json', (req, res) => { + res.sendFile(__dirname + '/swagger.json'); +}) + +app.get('/stats/:user', (req, res) => { + res.sendFile(__dirname + '/index.html'); +}) + +app.get('/api/stats/:user', async (req, res) => { + let responded = false; + if (req.params.user.length > 16) { // If uuid + id = req.params.user; + if(id.includes('-')) { + id = id.replace(/-/g, ''); + } + } else { // If username + var id = ''; + await Promise.all([ + fetch(`https://api.mojang.com/users/profiles/minecraft/${req.params.user}`) + ]) + .then(async([res1]) => { + // Gets the user's uuid from the Mojang API + mojang_data = await res1.json(); + id = mojang_data.id; + }) + .catch(error => { + res.send({success: false, cause: 'This user does not exist'}); + responded = true; + }); + } + if(id != '') { + Promise.all([ + fetch(`https://api.hypixel.net/resources/skyblock/bingo`) + ]) + .then(async([res1]) => { + // Gets the current active bingo goals + let goal_data = await res1.json(); + Promise.all([ + fetch(`https://api.hypixel.net/player?key=${key}&uuid=${id}`), + fetch(`https://api.hypixel.net/skyblock/profiles?key=${key}&uuid=${id}`), + fetch(`https://api.hypixel.net/skyblock/bingo?key=${key}&uuid=${id}`) + ]) + .then(async([res1, res2, res3]) => { + let player_data = await res1.json(); + // Get's the user's username + let name = player_data.player.displayname; + // Gets the user's Hypixel rank + var hypixel_rank = 'NORMAL'; + if(player_data.player.rank != undefined) { + hypixel_rank = player_data.player.rank; + } else if(player_data.player.monthlyPackageRank != undefined && player_data.player.monthlyPackageRank != 'NONE') { + hypixel_rank = player_data.player.monthlyPackageRank; + } else if(player_data.player.newPackageRank != undefined) { + hypixel_rank = player_data.player.newPackageRank; + } else if(player_data.player.packageRank != undefined) { + hypixel_rank = player_data.player.packageRank; + } + + let profile_data = await res2.json(); + // If the user does not have skyblock data send an error message + if (profile_data.profiles == null && !responded) {res.send({success: false, cause: 'No skyblock data could be found'}); responded = true;} + let bingo_rank = 0; + let profile_number = 0; + for (i = 0; i < profile_data.profiles.length; i++) { + if (profile_data.profiles[i].game_mode == 'bingo') { + // Determines which profile is the user's bingo profile + profile_number = i; + // Determines the user's bingo rank (based on their active bingo pet) + if (profile_data.profiles[profile_number].members[id].pets[0] != undefined) { + if (profile_data.profiles[profile_number].members[id].pets[0].tier == 'UNCOMMON') {bingo_rank = 1;} + if (profile_data.profiles[profile_number].members[id].pets[0].tier == 'RARE') {bingo_rank = 2;} + if (profile_data.profiles[profile_number].members[id].pets[0].tier == 'EPIC') {bingo_rank = 3;} + } + break; + } + } + + let bingo_data = await res3.json(); + // If the user does not have bingo data send an empty response + if (bingo_data.success == false && !responded) {res.send({uuid: id, username: name, hypixel_rank: hypixel_rank, bingo_rank: 0, total_completions: 0, total_points: 0, points: 0, completed_goals: []}); responded = true;} + // Get's the total bingo points & total bingo completions of a user + var completions = 0; + var total_points = 0; + let add_to_blacklist = false; + for(j = 0; j < bingo_data.events.length; j++) { + // If a user has exceeded the maximum number of points (ie: they duped points) blacklist the user + if (bingo_data.events[j].points > 160) {add_to_blacklist = true;} + if(bingo_data.events[j].completed_goals.length == 20) {completions++;} + total_points+=bingo_data.events[j].points; + } + + // Checks to see if a user is blacklisted + let already_blacklisted = false; + for(i = 0; i < blacklist_temp.length; i++) { + if(blacklist_temp[i].uuid == id) {already_blacklisted = true;} + } + + // Updates the leaderboard array + // For each player on the leaderboard + for(k = 0; k < leaderboard.length; k++) { + // If the user is not blacklisted + if(!already_blacklisted) { + // If the user's points are greater than the person k on the leaderboard + if (total_points > leaderboard[k].points) { + // If the user is already on the leaderboard + if (leaderboard.find(element => element.uuid === id) != undefined) { + // If the amount of points shown is less than the current amount + if (total_points > (leaderboard.find(element => element.uuid === id).points)) { + let index = leaderboard.findIndex(element => element.uuid === id); + leaderboard.splice(index, 1); + leaderboard.splice(k, 0, {uuid: id, name: name, hypixel_rank: hypixel_rank, points: total_points}); + break; + } + // If the user is not already on the leaderboard + } else { + leaderboard.splice(k, 0, {uuid: id, name: name, hypixel_rank: hypixel_rank, points: total_points}); + leaderboard.pop(); + break; + } + } + } + } + + // Updates the blacklist.json file + if(add_to_blacklist && !already_blacklisted) {blacklist_temp.push({uuid: id});} + if(blacklist != blacklist_temp) { + fs.writeFileSync('blacklist.json', JSON.stringify(blacklist_temp)); + } + + // Updates the leaderboard.json file + fs.writeFileSync('leaderboard.json', JSON.stringify(leaderboard)); + + completed_goals = []; + points = 0; + // Gets the user's amount of points for the current bingo event + for(i = 0; i < bingo_data.events.length; i++) { + if (bingo_data.events[i].key == goal_data.id) { + points = bingo_data.events[i].points; + // Gets the # of completed goals for the current bingo event + completed_goals = bingo_data.events[i].completed_goals; + } + } + if(!responded) {res.send({uuid: id, username: name, hypixel_rank: hypixel_rank, bingo_rank: bingo_rank, total_completions: completions, total_points: total_points, points: points, completed_goals: completed_goals}); responded = true;} + }) + .catch(error => { + if(!responded) {res.send({success: false, cause: 'This user does not exist'}); responded = true;}; + }); + }) + .catch(error => { + if(!responded) {res.send({success: false, cause: 'The Hypixel API is currently unavailable.'}); responded = true;}; + }); + } +}) + +app.get('/stats/:user', (req, res) => { + res.sendFile(__dirname + '/index.html'); +}) + +app.get('/api/leaderboard', (req, res) => { + res.send({leaderboard}); +}) + +app.get('/api/*', function(req, res){ + res.redirect(`https://${origin}/api`); +}); + +app.get('*', function(req, res){ + res.redirect(`https://${origin}`); +}); + +app.listen(port, () => { + console.log(`Listening to requests on https://${origin}:${port}`); +}); \ No newline at end of file diff --git a/leaderboard.json b/leaderboard.json new file mode 100644 index 0000000..82e971a --- /dev/null +++ b/leaderboard.json @@ -0,0 +1 @@ +[{"uuid":"2382416a89c646ee8ddc39aafbf801ba","name":"MinimiOW","hypixel_rank":"MVP_PLUS","points":1222},{"uuid":"93679901c82e468199fc54b53bb11c84","name":"Dredlig","hypixel_rank":"SUPERSTAR","points":1217},{"uuid":"1fb3717815694d02bca354cd1efaf25f","name":"zLegitH4cker","hypixel_rank":"MVP_PLUS","points":1211},{"uuid":"e6ae8489ca504c72a48133b3bcb262d2","name":"indigo_polecat","hypixel_rank":"SUPERSTAR","points":1145},{"uuid":"2bd36a91223743a49895b0f7fcdf6ce1","name":"sheetoflight","hypixel_rank":"MVP_PLUS","points":1141},{"uuid":"3bd74c4d69e04d76965f256b814b9a44","name":"CowKou","hypixel_rank":"MVP_PLUS","points":1117},{"uuid":"403ed07460254eb59cc5a27a5b45c78d","name":"Prestige0","hypixel_rank":"MVP_PLUS","points":1116},{"uuid":"6a2b0a0a92734cc4b2bb684f17213651","name":"Iridescentwolfz","hypixel_rank":"VIP","points":1093},{"uuid":"f144204d72de440799d4a1fbed50437b","name":"ZwergiX","hypixel_rank":"MVP_PLUS","points":1085},{"uuid":"c1127c0f10cd489c9d0f27c2df3d76f1","name":"godwyyn","hypixel_rank":"VIP_PLUS","points":1067},{"uuid":"0a0cd465fcaa43a6984aedbaf59ec862","name":"Hinoshii","hypixel_rank":"MVP_PLUS","points":1064},{"uuid":"d41427d70a8c42b98c8ea5b824e07b3b","name":"GoofyGoober","hypixel_rank":"MVP_PLUS","points":1046},{"uuid":"3abe728373774dd293bf6d843ce2618d","name":"_Progress","hypixel_rank":"VIP_PLUS","points":1042},{"uuid":"9bcb911d12f84d1e81af9c1f25fe19c2","name":"Bgbros","hypixel_rank":"MVP_PLUS","points":1040},{"uuid":"29c9e69228a44de8a0aeb8efd3c2872a","name":"AngeryMeowFloof","hypixel_rank":"SUPERSTAR","points":1038},{"uuid":"01dddf98b1be4498aadc8c3d84cbc69d","name":"lucky_man_cz14","hypixel_rank":"VIP","points":1035},{"uuid":"a99a4853fbe148eb8b9f0cf9efeb6912","name":"R4PlD","hypixel_rank":"MVP_PLUS","points":1034},{"uuid":"6df58a0ed5e54ec785c95d9e38f35350","name":"masanosuk","hypixel_rank":"MVP_PLUS","points":1025},{"uuid":"a8c55e3a665741c4a5762c6c97cbb428","name":"leo7668","hypixel_rank":"MVP_PLUS","points":1022},{"uuid":"952230439e3344c8a27e6b5096f719dc","name":"ArohaTheDino","hypixel_rank":"SUPERSTAR","points":1021},{"uuid":"e4f317cef6ea4bbd95842d62a4756c3f","name":"Ratzou2","hypixel_rank":"MVP_PLUS","points":1019},{"uuid":"7ab8e30281ce4844a8d10e88640a9248","name":"bcfc_simon","hypixel_rank":"SUPERSTAR","points":1005},{"uuid":"784b78edfe7d497289c617b4ab445361","name":"Blowody","hypixel_rank":"SUPERSTAR","points":1004},{"uuid":"fd9717eaedcf40b99b253af7f5e47e7b","name":"zyzzvays","hypixel_rank":"MVP_PLUS","points":999},{"uuid":"446dcccfa0e24822aca95d7ffafa9ca9","name":"ThePowerCoffee","hypixel_rank":"MVP_PLUS","points":986},{"uuid":"aeb0f531d3404bc8aca4e82b3234bc9c","name":"nightlibra","hypixel_rank":"SUPERSTAR","points":984},{"uuid":"e1ed1823b443477d96b4281b194e17ab","name":"Sir_Cow","hypixel_rank":"NORMAL","points":981},{"uuid":"803d0a34147e40a282050d2392c69ee8","name":"Jakeering","hypixel_rank":"MVP_PLUS","points":979},{"uuid":"40529a844ff246ab8956c47d05053631","name":"987654321kaboom","hypixel_rank":"MVP_PLUS","points":978},{"uuid":"7efecc4706d1407786eb0eefea32198b","name":"Iancido","hypixel_rank":"VIP_PLUS","points":972},{"uuid":"3b2f489e37f14629a18b94541e369b35","name":"Malmedare","hypixel_rank":"VIP_PLUS","points":970},{"uuid":"eb68c0983784414fbb6aaff40224d746","name":"yuuyuurunnta","hypixel_rank":"VIP","points":965},{"uuid":"ded40d76ce514e968fc2b366ff6a4d1d","name":"TheXandergoose","hypixel_rank":"MVP_PLUS","points":963},{"uuid":"931e12d3f1ef4fd98997ba28aab0997a","name":"GotKiller_","hypixel_rank":"MVP_PLUS","points":961},{"uuid":"75c03d723128405db2cdfe2b580cc8c2","name":"Hogalolz","hypixel_rank":"MVP_PLUS","points":958},{"uuid":"7617029983bf44ad9b03c65ab0c1cd10","name":"Growing_Potato","hypixel_rank":"VIP","points":956},{"uuid":"b28316a0102949ea97f0ee23cf079c3d","name":"JH159753","hypixel_rank":"MVP_PLUS","points":956},{"uuid":"5c5e1c4024d541deba7981c4b17de37a","name":"JackGB","hypixel_rank":"MVP_PLUS","points":952},{"uuid":"c58fa47723bf4894b185b9b7a619326b","name":"oWoPanda","hypixel_rank":"MVP_PLUS","points":951},{"uuid":"3fded1427bb64f53938e59010ddb098c","name":"Guermas","hypixel_rank":"MVP_PLUS","points":941},{"uuid":"7c6196f5a3ba44c8b2b4f46e337d4759","name":"valkeea","hypixel_rank":"SUPERSTAR","points":939},{"uuid":"4798a17b228f406c900516c3c472bb72","name":"THE_TY","hypixel_rank":"MVP_PLUS","points":933},{"uuid":"e5b7b611cd094b6daaba8590f944e26c","name":"isacang","hypixel_rank":"VIP_PLUS","points":933},{"uuid":"fe3bf05f803741f0b6cced25f03ea0c7","name":"WildPandas","hypixel_rank":"MVP_PLUS","points":930},{"uuid":"1cab746bfd854709bd3d9d079dc415f7","name":"Touwlix","hypixel_rank":"MVP_PLUS","points":921},{"uuid":"6c6dcfa62e8547b08b0733fd436127ab","name":"2Apex","hypixel_rank":"MVP_PLUS","points":920},{"uuid":"7c5acafbda154f4ababe885552c5aad1","name":"Arune_","hypixel_rank":"VIP","points":919},{"uuid":"508f7b37d1994fd89917cefcdfe32050","name":"Shiroyama95","hypixel_rank":"MVP_PLUS","points":917},{"uuid":"201842aaf9f34c1d82e388f6abaeaea3","name":"figthgocz","hypixel_rank":"MVP_PLUS","points":911},{"uuid":"76ebe550621b4954867575757ee3c281","name":"Luffy5000","hypixel_rank":"MVP_PLUS","points":909},{"uuid":"dffe9e8f094c42d79a0b2b74d445337c","name":"IAlcheMistI","hypixel_rank":"SUPERSTAR","points":908},{"uuid":"0d9eabc9e68844049b24249687e9a6a7","name":"tipok95","hypixel_rank":"YOUTUBER","points":902},{"uuid":"bbcc421b687849ae9bc20b8110bc2695","name":"Shmylblock","hypixel_rank":"MVP_PLUS","points":897},{"uuid":"280b962b7936464286ac1896969e5a82","name":"Midgemidge1014","hypixel_rank":"VIP","points":896},{"uuid":"29135e50c229404ba0b2a147abc374fc","name":"Knattekalle","hypixel_rank":"MVP_PLUS","points":888},{"uuid":"d6ec5310e2a14ef4a4e17bebf9e7b4dd","name":"Crxmsxn","hypixel_rank":"SUPERSTAR","points":888},{"uuid":"909960049b944a4da602b4f982b1bf39","name":"F8_DarQ","hypixel_rank":"SUPERSTAR","points":887},{"uuid":"1edd0fe43a004bdfa3c84770bb383680","name":"mcfiletmc","hypixel_rank":"MVP_PLUS","points":886},{"uuid":"77e3ef9ca4f647a5a5b1d0b2b9169165","name":"waterman6","hypixel_rank":"MVP_PLUS","points":885},{"uuid":"8deb1157188649f8bedc50c3adab88ef","name":"OPtea","hypixel_rank":"MVP_PLUS","points":883},{"uuid":"6410fef765f44204946201c45b2d01f9","name":"KatAura","hypixel_rank":"MVP_PLUS","points":882},{"uuid":"3c41a7323c0e426eb7708c7b49056be9","name":"ChangJenChieh","hypixel_rank":"MVP_PLUS","points":881},{"uuid":"94077c25c81147c493c239b66f76e55e","name":"Cybacat","hypixel_rank":"MVP_PLUS","points":879},{"uuid":"fb2188cc1abf4ae2b550b3c0d0a6b484","name":"Master_dragon7","hypixel_rank":"MVP_PLUS","points":878},{"uuid":"7b788f9e8a144629b3857f953f0d7fba","name":"Bluwudy","hypixel_rank":"SUPERSTAR","points":876},{"uuid":"27985f4edbcd49078057b9a9e180df83","name":"Bananyawn","hypixel_rank":"MVP_PLUS","points":874},{"uuid":"7eccd63ba67442aebe73246fc6ee326e","name":"qwerio","hypixel_rank":"VIP","points":873},{"uuid":"2295c365d1a14e5d84954c315b6053f7","name":"godmlg","hypixel_rank":"SUPERSTAR","points":870},{"uuid":"2d400a4ac7cb469db6f538681bca5400","name":"lgutich","hypixel_rank":"SUPERSTAR","points":869},{"uuid":"3f433486950c4ac493c9e45fe9408e3a","name":"iHqck0d","hypixel_rank":"MVP_PLUS","points":868},{"uuid":"866f23271d704d4c9af7374b49bac318","name":"The_HoboMC","hypixel_rank":"MVP_PLUS","points":867},{"uuid":"d45a0bdf0f544d7eb7eb388b9a479b33","name":"CombiGamerHD","hypixel_rank":"SUPERSTAR","points":863},{"uuid":"5602860f0158482aa46a830918a697db","name":"uwuMina","hypixel_rank":"VIP","points":858},{"uuid":"97d810bcc26e452aab0e9f6b1fa980d9","name":"TomekoYT","hypixel_rank":"MVP_PLUS","points":858},{"uuid":"42ff7beb96ea40f98feb8552e9fe6b3f","name":"ELIE101","hypixel_rank":"SUPERSTAR","points":853},{"uuid":"b9b21ef97dd84f2b842c21e46ade959a","name":"Ermanex","hypixel_rank":"MVP_PLUS","points":848},{"uuid":"c932b869d4794471a36d4ec6c1ef1fa2","name":"IQONIQ_","hypixel_rank":"SUPERSTAR","points":847},{"uuid":"578ce7fac6c44ca2ba1badad8dbbe884","name":"Im_Krazy","hypixel_rank":"SUPERSTAR","points":842},{"uuid":"eee62e0c4f2a4be79a513d002b7c1703","name":"VoidGloomSeraphV","hypixel_rank":"SUPERSTAR","points":842},{"uuid":"f315e6f2314944a29383571b015d8c99","name":"DoomTurtles_","hypixel_rank":"MVP","points":841},{"uuid":"1cd32de3866a4f6096c58c4578580ad9","name":"aurora6get","hypixel_rank":"VIP_PLUS","points":841},{"uuid":"76030a9f604d47d2983b9a71fdb5c687","name":"Axlifax","hypixel_rank":"VIP","points":840},{"uuid":"b883b8b3551c4ea28e446b7a7385712f","name":"LvckyTimeJr","hypixel_rank":"MVP_PLUS","points":836},{"uuid":"51a4220763bf4c50bcdcab7a8d84857b","name":"TheChubbyWalrus","hypixel_rank":"VIP","points":828},{"uuid":"0756300c365a4b8e832b04c5a374d728","name":"LeqitAndre","hypixel_rank":"MVP_PLUS","points":824},{"uuid":"27612d9e9da74fd690128c4bcde0299f","name":"Overvest","hypixel_rank":"NORMAL","points":818},{"uuid":"9163a0b254dc4fd6ac7dadcc86ec3465","name":"Erkonyx","hypixel_rank":"MVP_PLUS","points":816},{"uuid":"75fd93dd8e48469881a297dae2ec5b5f","name":"Pugzy","hypixel_rank":"MVP_PLUS","points":811},{"uuid":"df5e1701809c48be9b0def50b83b009e","name":"GoldenDusk","hypixel_rank":"SUPERSTAR","points":810},{"uuid":"858ee9a1ba6f4ef9a512fd0eb63d0663","name":"arithemonkey","hypixel_rank":"SUPERSTAR","points":809},{"uuid":"c860277ce6b346369d322499b2a14904","name":"IchBinJoxi","hypixel_rank":"MVP_PLUS","points":808},{"uuid":"820473a067cc4acaa1d8c31b4ef0c0a2","name":"Zlarium_","hypixel_rank":"MVP_PLUS","points":808},{"uuid":"a5c1a16ed64e498c8ccd0c1ce9bd37d8","name":"GleoLP","hypixel_rank":"MVP_PLUS","points":807},{"uuid":"33eba728d67b479e8fa1f37307174ea4","name":"Kneshio","hypixel_rank":"MVP_PLUS","points":806},{"uuid":"25dfaa496f2348279fadc88d4279c059","name":"SkeppyBisector","hypixel_rank":"MVP_PLUS","points":804},{"uuid":"3bb7b89511bf4ff7880318018c60a5ac","name":"Fireday","hypixel_rank":"VIP_PLUS","points":802},{"uuid":"74fcc716bf45488d82bf94d986625756","name":"Nackoy","hypixel_rank":"MVP_PLUS","points":801},{"uuid":"4d16bc6b2ff340c7910ce7472d12e6cd","name":"derNiklaas","hypixel_rank":"SUPERSTAR","points":800},{"uuid":"73153a9474cf4503ace8300044967889","name":"Portal_Room","hypixel_rank":"MVP_PLUS","points":800},{"uuid":"13913fb5aa3d4cd0bb5291b282e9be86","name":"uwususc","hypixel_rank":"MVP_PLUS","points":792}] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..31c69ae --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1614 @@ +{ + "name": "bingo-api", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActl