diff --git a/services/m=hiscore/hiscores.js b/services/m=hiscore/hiscores.js index 56ebd8839..823470045 100644 --- a/services/m=hiscore/hiscores.js +++ b/services/m=hiscore/hiscores.js @@ -1,13 +1,816 @@ var hiscores = hiscores || {}; +var usersToSquash = [ + "nostalgianon", + "s", + "ducky", + "swiperighttt", + "f00b", + "trevor_10x", + "secktor", + "moukanubi", + "perfect", + "dad", + "shiver", + "xexani", + "greatpeepo", + "dome_v2", + "to_the_moon", + "alex", + "the_somalian", + "atla", + "shay", + "hc_nix", + "mewtt", + "hc_bean", + "nips", + "bellful", + "ryo", + "bean", + "luis", + "jakey_m", + "sia", + "chernobyl", + "von_hresvelg", + "rokyen", + "ray73", + "jamix77", + "death", + "nemo125", + "nobodyclp", + "skeglord", + "twistedmindz", + "daniella", + "boyd", + "ancient", + "lord0zeref", + "charonchaos", + "20", + "findinggmo", + "goon", + "nuggles", + "w_of_ww_only", + "gman", + "duck", + "garoozis", + "caviel", + "gernum", + "verac_obama", + "cddc", + "skittles", + "damian", + "bumboozler", + "dudebro", + "danbi", + "reaper", + "matthew", + "sudoku", + "carrot182", + "hanskrebs", + "stinkyshit", + "von_kaiser", + "poopstain", + "snickerize", + "mcfeels", + "annie", + "generolas121", + "metaphor", + "ventuzz", + "unrealhaze", + "effie_lyra_w", + "jack_hack", + "bodhisattva", + "kiwi", + "frogger", + "notkarl", + "kalessin", + "macpoopum", + "totulotu", + "toxic", + "amanitagreen", + "you", + "johnson", + "ima_skiller", + "piga", + "powder", + "annoyedsin", + "polynesia", + "zilz", + "nik2u", + "dmvox", + "moonga", + "mony", + "iron_pain", + "partyharder", + "gracey", + "superlich", + "killercat564", + "ardthesheep", + "cabbagegod", + "rabbit_juice", + "slyyjacob", + "stepzina4", + "redsparr0w", + "flegflog", + "yrjontr", + "davis", + "kashuab", + "legend", + "slow_x20_im", + "stardust", + "mnms", + "oneda", + "mrslayer02", + "trance", + "jacklemonade", + "krethis", + "ligmardi", + "justhaze", + "thejewbear", + "cap_kouhai", + "1989", + "sc0rz", + "rank_2025", + "fire_g0d_10", + "vamz", + "sangramoire", + "exodia", + "trail_blazer", + "corrupt_emi", + "ghostboytech", + "pirie", + "viskag", + "test13", + "don_deco", + "jazzhand", + "mycaiah", + "cooldude0027", + "dragonslayer", + "nintendo_swe", + "emarswish", + "clickedez", + "horgh", + "salt", + "blake", + "umbravir", + "eelis152", + "mom", + "orange_cat", + "rinblade", + "stopzera", + "whisper", + "kitb", + "zakruise", + "romaris", + "pv", + "cape", + "avex", + "trashmane", + "nausicaa", + "darkrainnn", + "nix", + "gains", + "sagat", + "amizez", + "tbeddict", + "star_alt3", + "star_alt2", + "sloweasymode", + "shoopidawoop", + "star_alt", + "maugel", + "jacob", + "funny_rocks", + "joaquin", + "thorim608", + "asembu", + "nutmeg97", + "i_skill_i", + "spicy_mayo", + "venser", + "von_haar", + "tinoforprez", + "phale", + "reesespieces", + "destroy", + "johnhaul", + "legtastic", + "not_a_bot", + "travesty", + "althaltariel", + "druid", + "clock", + "wot", + "pebol_ii", + "rob_boss", + "heckler", + "celty", + "bossman", + "speedy_click", + "real_red_uim", + "polygoner", + "escanaba", + "azzuran", + "the_frog", + "smag", + "iprax23", + "nordika", + "fearless", + "mike_kummer", + "slow_x10", + "ontario", + "odinn", + "eximalis", + "colovian", + "no_u", + "dansk_mjod", + "akaprestonn", + "runey", + "nice", + "dark_drift7", + "bohemia60", + "silverfish", + "wildyjoe", + "crisp", + "gordie", + "aluminumpp", + "jegernorsk63", + "amber", + "edd", + "dark98", + "brownbricks", + "dylan", + "imouto", + "holy_paladin", + "bailey", + "wirvyn", + "sudds", + "suitsa", + "xamotdaor", + "janglados", + "happybell", + "dino", + "cronic", + "larabeast", + "raza", + "test12", + "windstryde", + "luciano", + "anton", + "happybellhr", + "goonv2", + "undercover", + "boop", + "slow_x10_im", + "mei", + "trash_comics", + "danheim", + "b0om_bo0m", + "mrbig", + "nikita", + "maint", + "samham", + "dream_desire", + "slow_x20_uim", + "o_valhalla", + "indicator", + "bigpengi", + "nickj", + "bfunny", + "hexa408", + "godwarskills", + "sanderpro12", + "hegapm", + "julien03", + "von_sirius", + "not_stonkz", + "where", + "pleco", + "wrekyoas", + "insanity", + "oliveoyl", + "danewolf", + "bustinanut", + "aethus", + "paru", + "manga", + "skryllz", + "scaperman", + "lovetehpanda", + "xavim2000", + "thealtalt2", + "c0nello", + "thealtalt", + "squirrelly", + "nortan", + "chlex_superb", + "mohawkscape", + "notfishing", + "camsao", + "ana_rchy", + "miuzore", + "von_karma", + "stoney", + "biel1337", + "forrest", + "thierry", + "eddy", + "beauty", + "rune_arrow", + "bakehoven", + "kaiser", + "doneforever", + "lowattacker", + "zevalt", + "icthlarin", + "negus", + "nostalgia", + "calamity", + "johnnyomm", + "i2legit", + "poop", + "k1", + "normee", + "pyrrhonius", + "musaaltariel", + "carlos1", + "schnee", + "skecherrs", + "amaxroma", + "dungeon", + "cuzudo", + "pakatoke", + "zorbon", + "amelia", + "h2okevin", + "rynestone", + "tacomunchies", + "voxel", + "cheesyonion", + "mm", + "xdbcrazyx", + "011", + "yberoqq", + "iron_skald", + "arrowhaze", + "gold_farmer", + "inject_soap", + "silverhaze", + "ptn", + "ox_gen", + "rothschild", + "general", + "a_stoat", + "gnome", + "euphoric", + "q", + "peepo", + "elite_3", + "tom123", + "suul", + "nostalgiaowo", + "vetrropog", + "kit_bee", + "stinkmeaner", + "lilith", + "boots_boy", + "quadzilla", + "carlos", + "98_fishing", + "hunter", + "markr25", + "tobyman21", + "jagex_mod", + "not_josh", + "iron_gan", + "maxmani", + "hero", + "seako", + "van_dyke", + "nukem_dukem", + "amina", + "jonpin", + "cloudkicker", + "bigsnakeman1", + "bridge", + "tysonkush", + "h", + "lolberries", + "kennakat5", + "christoph", + "brohan", + "turtle", + "tyhigh", + "henkfreek", + "esus", + "edgewildonly", + "bilburn", + "schmittyboi", + "blastedt", + "harding", + "log1legend", + "nix_wigton", + "hc_huojin", + "1001crafter", + "log_legend", + "skillers_pr0", + "xsinner", + "lycius", + "influences", + "pazaz", + "iron_arrow", + "scoutpilgrim", + "magerino", + "lucaso", + "testaccount", + "slayeronly", + "fig_bar", + "cb", + "ed", + "bean3", + "2009bush", + "bean2", + "kyrathir", + "shiver2", + "tatennis", + "two4one", + "99problems", + "95", + "espartacus_g", + "gengar", + "levi", + "white_phat", + "gloopster", + "stephen", + "kami", + "cooldude0029", + "freshpaka", + "woodtracts", + "cronky", + "effie_lyra", + "kiop", + "brohans", + "dodian", + "bytecode", + "aurora", + "yami_yugi", + "luxio", + "nemo2", + "glassy", + "yio", + "cat", + "newmanowns", + "iamdie", + "rolling11", + "chadathan", + "repka", + "iron_ragnar", + "bionicrabbit", + "huojin", + "nemo", + "fatscape", + "einlanzer", + "dude", + "quester", + "the_chopper", + "the_cutter", + "the_chipper", + "hyplink", + "alma", + "paka1", + "khnum", + "beez120", + "mashi2", + "arwatp1", + "iron_dog", + "camdom35", + "unclemarkush", + "hetnim", + "huge_trap", + "the_splitter", + "whatdo22", + "alfadhir", + "luke", + "4fun", + "boink", + "myskilleracc", + "smd", + "vallohr", + "dexter", + "luuck2009", + "wizard", + "barrowruns", + "e2hu9rfhu", + "vanity", + "daniel", + "brendon", + "peacheater", + "ray_getard", + "koala", + "walnut97", + "nosythsub", + "winter", + "advaita", + "norgg", + "lil_alt", + "exi", + "tyson", + "smoothpaka", + "niflheim", + "rotten_sushi", + "steelaxepro", + "mining", + "basedzore", + "sudokue", + "orochimaru", + "freakthe", + "nap", + "ballsack", + "kuris", + "soshi", + "charlie", + "wendigo", + "qwerty123", + "ainsvillain", + "adelmar", + "mutimir", + "ffresh", + "garak_korgh", + "r0binxh00d1", + "ziosky", + "sarah", + "red_uim", + "fishing", + "contracts", + "why_banned", + "o", + "str99f2p", + "skill", + "fork_lickers", + "lee", + "one_eye_god", + "xmckennax", + "elvryn", + "smaggy", + "neymar", + "shy", + "rob", + "scizor", + "cpfuzzy", + "matest", + "jonch", + "cherry", + "ggrrr2", + "ogun", + "shane", + "react415", + "natte_oma", + "133755", + "justin", + "trypta", + "y_t", + "jetox", + "casio", + "sugma", + "skiller119", + "iphone_11", + "test22", + "mote_plox", + "9", + "chang", + "autismcure", + "ardipk", + "hardcore_btw", + "jakey", + "felipe", + "uim_pure", + "2020scape", + "fury", + "xanxs", + "devvo", + "bearstew", + "assalat3", + "zerinha", + "robbo44", + "pumpkin", + "4", + "awwwman55", + "a_a", + "darks_bot_1", + "the_man", + "metasploit", + "burry", + "colby", + "weed", + "ardyk", + "121jiggawatt", + "irontyguy", + "tylerbeg", + "mrmaqic", + "sslaptnhablh", + "coreyy", + "cjzl", + "rudi", + "dragonfire", + "pixies", + "brapfam", + "kaymokay", + "dropgo", + "marijuanaman", + "nitrocrate", + "e", + "corey", + "saltyboi", + "enricks", + "runeshark", + "breez", + "pacatoke", + "frog_king", + "alt", + "relliksar", + "he_man", + "necrophiliac", + "lucky", + "kebab", + "rsb", + "ember_sparks", + "charmander", + "manic", + "lucas", + "teajae", + "dickhead", + "gnomekid", + "behelit", + "henkie_v2", + "the_cunt", + "mehmet", + "patrickbuit", + "tysonbush415", + "totalnoob", + "dicksinme", + "rainer_cx", + "bepis_man", + "aphelios", + "beelax", + "cole123", + "draconyx", + "lomax", + "mommy", + "mizery", + "crime", + "boots", + "bobertp", + "climjark", + "all_father", + "roaq", + "coolguy", + "daruom", + "drakan", + "fagmin2", + "saradomin", + "picahuss", + "rockmunch", + "cumtown", + "whosthatpkmn", + "megaox", + "killbill42", + "slayerz554", + "peter", + "mans", + "warning", + "saints1098", + "king", + "zyris_krith", + "aksls", + "reniferek", + "fukinwanker", + "guibibi", + "nemural", + "vitobambino", + "drewdog", + "sav", + "latterdays", + "plushy", + "bubz", + "mistborn", + "snowdropzzz", + "whittle91", + "atsevrot", + "big_sexy", + "daddy", + "thisgocrazy", + "i3lacklisted", + "gorilla_nuts", + "snowy", + "hehehe", + "aswan8920", + "deion", + "skillerz", + "player_2568", + "123456", + "adeon", + "aspect", + "bit_decay", + "blastys", + "blue_hween", + "bored", + "botscape00", + "bursts", + "bush", + "cam", + "cccccccv", + "cheesyboy", + "chim", + "deathatlas2", + "fe_mortem", + "firstshotrio", + "future", + "green_hween", + "green_phat", + "half_duck", + "ifigzz", + "insertname", + "iron_clumpsy", + "iron_man", + "jawarrior", + "kaiser_kevin", + "krillx", + "kristoff", + "kz4", + "lone", + "mohawk", + "mr_rogue", + "nijouh1", + "pringles", + "rank_300", + "ronpaul", + "rook", + "rune", + "sir_vant", + "smokeda_weed", + "tevil", + "therealone", + "trade", + "tyson554", + "varoon20", + "vonswa", + "w1cked", + "woodiea", + "xileon", + "yellow_phat", + "zenarith", + "zetrunight", + "zilos", + "zoey" +] + +function proxyUnsquashed(proxyData,result){ + for (let i = 0; i < Object.keys(result).length; i += 1) { + // If a user logs in they will have their exp_multiplier set to 5.0 so we don't need to proxy them. + if (usersToSquash.indexOf(result[i].username) != -1 && result[i].exp_multiplier != "5.0") { + result[i] = proxyData[result[i].username] + } + } + result.sort(function (a, b) { + return parseFloat(b.level) - parseFloat(a.level); + }) + return result +} + +function proxyUnsquashedExp(proxyData,result){ + for (let i = 0; i < Object.keys(result).length; i += 1) { + // If a user logs in they will have their exp_multiplier set to 5.0 so we don't need to proxy them. + if (usersToSquash.indexOf(result[i].username) != -1 && result[i].exp_multiplier != "5.0") { + result[i] = proxyData[result[i].username] + } + } + result.sort(function (a, b) { + return parseFloat(b.xp) - parseFloat(a.xp); + }) + return result +} + hiscores.loadDefaultHSTable = () => { fetch(`${hiscores.apiURL}/hiscores/playersByTotal/${hiscores.world}`) .then(response => response.json()) .then(result => { - result = hiscores.filter(result); - hiscores.tableData = result; - hiscores.defaultTableData = result; - hiscores.populateDefaultHSTable(); + if (hiscores.world == 2) { + fetch("https://downthecrop.github.io/hiscore-proxy/proxies/totallevel.json") + .then(response => response.json()).then( + proxyData => { + result = proxyUnsquashed(proxyData,result) + result = hiscores.filter(result); + hiscores.tableData = result; + hiscores.defaultTableData = result; + hiscores.populateDefaultHSTable(); + }) + } + else { + result = hiscores.filter(result); + hiscores.tableData = result; + hiscores.defaultTableData = result; + hiscores.populateDefaultHSTable(); + } }) .catch(error => console.log('error', error)); } @@ -15,7 +818,7 @@ hiscores.loadDefaultHSTable = () => { hiscores.populateDefaultHSTable = () => { for (let i = 1; i <= 24; i++) { row = document.getElementsByClassName(`row row${i}`)[0]; - const playerData = hiscores.tableData[i + 24 * hiscores.page - 1]; + let playerData = hiscores.tableData[i + 24 * hiscores.page - 1]; row.childNodes[1].replaceWith(document.createElement("td")); row.childNodes[1].className = "rankCol"; @@ -37,7 +840,46 @@ hiscores.populateDefaultHSTable = () => { hiscores.loadUserTable = (username) => { username = username.split("%20").join(" "); - fetch(`${hiscores.apiURL}/hiscores/playerSkills/${hiscores.world}/${username.toLowerCase()}`) + if (usersToSquash.indexOf(username) != -1){ + fetch(`${hiscores.apiURL}/hiscores/playerSkills/${hiscores.world}/${username.toLowerCase()}`) + .then(response => response.json()) + .then(result => { + if (result.info.exp_multiplier != "5.0"){ + fetch('https://downthecrop.github.io/hiscore-proxy/proxies/players/'+username+'.json') + .then(response => response.json()) + .then(result => { + document.getElementById('search_name').style.color = 'black'; + hiscores.tableData = result.skills; + hiscores.tableInfo = result.info; + hiscores.populatePlayerHSTable(); + hiscores.setHeadSkillText(hiscores.formatName(username, 0, result.info.exp_multiplier, true)); + }) + .then(() => { + for(let i = 0; i < 24; i+= 1){ + //It's slow, but it works! + fetch(`${hiscores.apiURL}/hiscores/playersBySkill/${hiscores.world}/${i}`) + .then(response => response.json()) + .then(liveData => { + fetch('https://downthecrop.github.io/hiscore-proxy/proxies/skills/'+i+'.json') + .then(response => response.json()) + .then(proxyData => { + liveData = proxyUnsquashedExp(proxyData,liveData) + console.log("I can find: this user at: "+Number(liveData.findIndex(player => player.username.toLowerCase() === username.toLowerCase())+1)) + hiscores.populatePlayerRankByIndex(username, liveData, i+1); + }) + }) + } + }) + .catch(error => { + document.getElementById('search_name').style.color = 'red'; + document.getElementById('search_name').value = 'Player not found!'; + console.log('error', error); + }); + } + }) + } + else{ + fetch(`${hiscores.apiURL}/hiscores/playerSkills/${hiscores.world}/${username.toLowerCase()}`) .then(response => response.json()) .then(result => { document.getElementById('search_name').style.color = 'black'; @@ -59,6 +901,7 @@ hiscores.loadUserTable = (username) => { document.getElementById('search_name').value = 'Player not found!'; console.log('error', error); }); + } } hiscores.populatePlayerHSTable = () => { @@ -110,14 +953,38 @@ hiscores.populatePlayerRanks = (username, result) => { } } +hiscores.populatePlayerRankByIndex = (username, result, i) => { + username = username.split(" ").join("_"); + result = hiscores.filter(result); + row = document.getElementsByClassName(`row row${i}`)[0]; + + row.childNodes[1].replaceWith(document.createElement("td")); + row.childNodes[1].className = "rankCol"; + let rank = (result.findIndex(player => player.username.toLowerCase() === username.toLowerCase()) + 1) + row.childNodes[1].innerHTML = rank ? rank : `Unranked`; +} + hiscores.loadSkillTable = (skillId) => { fetch(`${hiscores.apiURL}/hiscores/playersBySkill/${hiscores.world}/${skillId}`) .then(response => response.json()) .then(result => { - result = hiscores.filter(result); - hiscores.tableData = result; - hiscores.currentSkillId = skillId; - hiscores.populateSkillHSTable(); + if (hiscores.world == 2) { + fetch(`https://downthecrop.github.io/hiscore-proxy/proxies/skills/${skillId}.json`) + .then(response => response.json()).then( + proxyData => { + result = hiscores.filter(result); + result = proxyUnsquashedExp(proxyData,result) + hiscores.tableData = result; + hiscores.defaultTableData = result; + hiscores.populateDefaultHSTable(); + }) + } + else { + result = hiscores.filter(result); + hiscores.tableData = result; + hiscores.currentSkillId = skillId; + hiscores.populateSkillHSTable(); + } }) .catch(error => console.log('error', error)); }