about summary refs log tree commit diff stats
path: root/src/assets/javascripts/wikipedia.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts/wikipedia.js')
-rw-r--r--src/assets/javascripts/wikipedia.js247
1 files changed, 0 insertions, 247 deletions
diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js
deleted file mode 100644
index 1e06ed44..00000000
--- a/src/assets/javascripts/wikipedia.js
+++ /dev/null
@@ -1,247 +0,0 @@
-window.browser = window.browser || window.chrome
-
-import utils from "./utils.js"
-
-const targets = /^https?:\/{2}([a-z]+\.)*wikipedia\.org/
-
-const frontends = new Array("wikiless")
-const protocols = new Array("normal", "tor", "i2p", "loki")
-
-let redirects = {}
-
-for (let i = 0; i < frontends.length; i++) {
-	redirects[frontends[i]] = {}
-	for (let x = 0; x < protocols.length; x++) {
-		redirects[frontends[i]][protocols[x]] = []
-	}
-}
-
-function setRedirects(val) {
-	return new Promise(resolve =>
-		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-			redirects.wikiless = val
-			wikilessNormalRedirectsChecks = [...redirects.wikiless.normal]
-			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-				const a = wikilessNormalRedirectsChecks.indexOf(instance)
-				if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1)
-			}
-			browser.storage.local.set(
-				{
-					wikipediaRedirects: redirects,
-					wikilessNormalRedirectsChecks,
-					wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
-					wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
-					wikilessLokiRedirectsChecks: [...redirects.wikiless.loki],
-				},
-				() => resolve()
-			)
-		})
-	)
-}
-
-let disableWikipedia,
-	wikipediaRedirects,
-	protocol,
-	protocolFallback,
-	wikilessNormalRedirectsChecks,
-	wikilessTorRedirectsChecks,
-	wikilessI2pRedirectsChecks,
-	wikilessNormalCustomRedirects,
-	wikilessTorCustomRedirects,
-	wikilessI2pCustomRedirects,
-	wikilessLokiCustomRedirects
-
-function init() {
-	return new Promise(async resolve => {
-		browser.storage.local.get(
-			[
-				"disableWikipedia",
-				"wikipediaRedirects",
-				"protocol",
-				"protocolFallback",
-				"wikilessNormalRedirectsChecks",
-				"wikilessTorRedirectsChecks",
-				"wikilessI2pRedirectsChecks",
-				"wikilessNormalCustomRedirects",
-				"wikilessTorCustomRedirects",
-				"wikilessI2pCustomRedirects",
-				"wikilessLokiCustomRedirects",
-			],
-			r => {
-				disableWikipedia = r.disableWikipedia
-				wikipediaRedirects = r.wikipediaRedirects
-				protocol = r.protocol
-				protocolFallback = r.protocolFallback
-				wikilessNormalRedirectsChecks = r.wikilessNormalRedirectsChecks
-				wikilessTorRedirectsChecks = r.wikilessTorRedirectsChecks
-				wikilessI2pRedirectsChecks = r.wikilessI2pRedirectsChecks
-				wikilessNormalCustomRedirects = r.wikilessNormalCustomRedirects
-				wikilessTorCustomRedirects = r.wikilessTorCustomRedirects
-				wikilessI2pCustomRedirects = r.wikilessI2pCustomRedirects
-				wikilessLokiCustomRedirects = r.wikilessLokiCustomRedirects
-				resolve()
-			}
-		)
-	})
-}
-
-init()
-browser.storage.onChanged.addListener(init)
-
-function initWikilessCookies(test, from) {
-	return new Promise(async resolve => {
-		await init()
-		const protocolHost = utils.protocolHost(from)
-		const all = [
-			...wikilessNormalRedirectsChecks,
-			...wikilessNormalCustomRedirects,
-			...wikilessTorRedirectsChecks,
-			...wikilessTorCustomRedirects,
-			...wikilessI2pRedirectsChecks,
-			...wikilessI2pCustomRedirects,
-			...wikilessLokiCustomRedirects,
-		]
-		if (!all.includes(protocolHost)) {
-			resolve()
-			return
-		}
-
-		if (!test) {
-			let checkedInstances = []
-			if (protocol == "loki") checkedInstances = [...wikilessLokiCustomRedirects]
-			else if (protocol == "i2p") checkedInstances = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks]
-			else if (protocol == "tor") checkedInstances = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]
-			if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
-				checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]
-			}
-			await utils.copyCookie("wikiless", from, checkedInstances, "theme")
-			await utils.copyCookie("wikiless", from, checkedInstances, "default_lang")
-		}
-		resolve(true)
-	})
-}
-
-function redirect(url, disableOverride) {
-	if (disableWikipedia && !disableOverride) return
-	if (!targets.test(url.href)) return
-
-	let GETArguments = []
-	if (url.search.length > 0) {
-		let search = url.search.substring(1) //get rid of '?'
-		let argstrings = search.split("&")
-		for (let i = 0; i < argstrings.length; i++) {
-			let args = argstrings[i].split("=")
-			GETArguments.push([args[0], args[1]])
-		}
-	}
-	let instancesList = []
-	if (protocol == "loki") instancesList = [...wikilessLokiCustomRedirects]
-	else if (protocol == "i2p") instancesList = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks]
-	else if (protocol == "tor") instancesList = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]
-	if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-		instancesList = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]
-	}
-	if (instancesList.length === 0) return
-	const randomInstance = utils.getRandomInstance(instancesList)
-
-	let link = `${randomInstance}${url.pathname}`
-	let urlSplit = url.host.split(".")
-	if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") {
-		if (urlSplit[0] == "m") GETArguments.push(["mobileaction", "toggle_view_mobile"])
-		else GETArguments.push(["lang", urlSplit[0]])
-		if (urlSplit[1] == "m") GETArguments.push(["mobileaction", "toggle_view_mobile"])
-		// wikiless doesn't have mobile view support yet
-	}
-	for (let i = 0; i < GETArguments.length; i++) link += (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1]
-	return link
-}
-
-function switchInstance(url, disableOverride) {
-	return new Promise(async resolve => {
-		await init()
-		if (disableWikipedia && !disableOverride) {
-			resolve()
-			return
-		}
-		const protocolHost = utils.protocolHost(url)
-		const wikipediaList = [
-			...wikipediaRedirects.wikiless.normal,
-			...wikipediaRedirects.wikiless.tor,
-			...wikipediaRedirects.wikiless.i2p,
-
-			...wikilessNormalCustomRedirects,
-			...wikilessTorCustomRedirects,
-			...wikilessI2pCustomRedirects,
-			...wikilessLokiCustomRedirects,
-		]
-		if (!wikipediaList.includes(protocolHost)) {
-			resolve()
-			return
-		}
-
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...wikilessLokiCustomRedirects]
-		else if (protocol == "i2p") instancesList = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks]
-		else if (protocol == "tor") instancesList = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]
-		}
-
-		let index = instancesList.indexOf(protocolHost)
-		if (index > -1) instancesList.splice(index, 1)
-		if (instancesList.length === 0) {
-			resolve()
-			return
-		}
-
-		const randomInstance = utils.getRandomInstance(instancesList)
-		resolve(`${randomInstance}${url.pathname}${url.search}`)
-	})
-}
-
-function initDefaults() {
-	return new Promise(resolve => {
-		fetch("/instances/data.json")
-			.then(response => response.text())
-			.then(async data => {
-				let dataJson = JSON.parse(data)
-				for (let i = 0; i < frontends.length; i++) {
-					redirects[frontends[i]] = dataJson[frontends[i]]
-				}
-				browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => {
-					wikilessNormalRedirectsChecks = [...redirects.wikiless.normal]
-					for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-						const a = wikilessNormalRedirectsChecks.indexOf(instance)
-						if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1)
-					}
-					browser.storage.local.set(
-						{
-							disableWikipedia: true,
-							wikipediaRedirects: redirects,
-
-							wikilessNormalRedirectsChecks,
-							wikilessNormalCustomRedirects: [],
-
-							wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
-							wikilessTorCustomRedirects: [],
-
-							wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
-							wikilessI2pCustomRedirects: [],
-
-							wikilessLokiRedirectsChecks: [...redirects.wikiless.loki],
-							wikilessLokiCustomRedirects: [],
-						},
-						() => resolve()
-					)
-				})
-			})
-	})
-}
-
-export default {
-	setRedirects,
-	initWikilessCookies,
-	redirect,
-	initDefaults,
-	switchInstance,
-}