invidious-redirect/build/static/js/main.min.js.map
2020-08-07 20:16:29 +12:00

1 line
6.7 KiB
Plaintext

{"version":3,"sources":["unknown"],"names":["q","s","document","querySelector","qa","querySelectorAll","createElement","tag","properties","children","e","Object","keys","key","child","appendChild","shuffle","array","i","length","j","Math","floor","random","request","url","Promise","resolve","reject","xhr","XMLHttpRequest","addEventListener","readyState","status","JSON","parse","response","open","send","destinationPath","window","location","href","slice","origin","forEach","textContent","getAttribute","then","root","map","entry","healthKnown","monitor","name","details","health","dailyRatios","ratio","filter","type","sort","a","b","target","uri","replace","healthUnknown","toFixed","className","remove"],"mappings":"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","sourcesContent":["\"use strict\";\n\n;(() => {\n\tconst q = s => document.querySelector(s)\n\tconst qa = s => document.querySelectorAll(s)\n\n\tfunction createElement(tag, properties = {}, children = []) {\n\t\tconst e = document.createElement(tag)\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\te[key] = properties[key]\n\t\t}\n\t\tfor (const child of children) {\n\t\t\te.appendChild(child)\n\t\t}\n\t\treturn e\n\t}\n\n\tfunction shuffle(array) {\n\t\tfor (let i = 0; i < array.length; i++) {\n\t\t\tlet j = Math.floor(Math.random() * (array.length-i)) + i\n\t\t\t;[array[i], array[j]] = [array[j], array[i]]\n\t\t}\n\t\treturn array\n\t}\n\n\tfunction request(url) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst xhr = new XMLHttpRequest()\n\t\t\txhr.addEventListener(\"readystatechange\", () => {\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\tif (xhr.status === 200) {\n\t\t\t\t\t\tresolve(JSON.parse(xhr.response))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\txhr.open(\"GET\", url)\n\t\t\txhr.send()\n\t\t})\n\t}\n\n\tconst destinationPath = window.location.href.slice(window.location.origin.length)\n\n\tq(\"#watch-on-youtube\").href = \"https://www.youtube.com\" + destinationPath\n\n\tqa(\"[data-loading-message]\").forEach(e => e.textContent = e.getAttribute(\"data-loading-message\"))\n\n\trequest(\"https://instances.invidio.us/instances.json?sort_by=type,health\").then(\n\t/** @param {[string, {monitor: any, flag: string, region: string, stats: any, type: string, uri: string}][]} root */ root => {\n\t\tshuffle(root)\n\t\troot.map(entry => {\n\t\t\tconst healthKnown = !!entry[1].monitor\n\t\t\treturn {\n\t\t\t\tname: entry[0],\n\t\t\t\tdetails: entry[1],\n\t\t\t\thealth: +(healthKnown ? entry[1].monitor.dailyRatios[0].ratio : 95),\n\t\t\t\thealthKnown\n\t\t\t}\n\t\t}).filter(entry => {\n\t\t\treturn entry.details.type === \"https\" && entry.health > 0\n\t\t}).sort((a, b) => {\n\t\t\treturn b.health - a.health\n\t\t}).forEach(entry => {\n\t\t\tlet target = entry.details.uri.replace(/\\/*$/, \"\") + destinationPath\n\t\t\tconst healthUnknown = entry.healthKnown ? \"\" : \"health-unknown \"\n\t\t\tconst health = entry.healthKnown ? entry.health.toFixed(0) : \"(unknown)\"\n\t\t\tq(\"#instances-tbody\").appendChild(\n\t\t\t\tcreateElement(\"tr\", {}, [\n\t\t\t\t\tcreateElement(\"td\", {textContent: entry.name}),\n\t\t\t\t\tcreateElement(\"td\", {className: \"column-center \"+healthUnknown, textContent: health}),\n\t\t\t\t\tcreateElement(\"td\", {className: \"column-center\"}, [\n\t\t\t\t\t\tcreateElement(\"a\", {href: target, textContent: \"Go →\"})\n\t\t\t\t\t])\n\t\t\t\t])\n\t\t\t)\n\t\t})\n\t\tqa(\".loading\").forEach(e => e.remove())\n\t})\n})()\n"]}