about summary refs log tree commit diff stats
path: root/src/assets/javascripts/medium.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts/medium.js')
-rw-r--r--src/assets/javascripts/medium.js227
1 files changed, 0 insertions, 227 deletions
diff --git a/src/assets/javascripts/medium.js b/src/assets/javascripts/medium.js
deleted file mode 100644
index 386d234c..00000000
--- a/src/assets/javascripts/medium.js
+++ /dev/null
@@ -1,227 +0,0 @@
-window.browser = window.browser || window.chrome
-import utils from "./utils.js"
-
-const targets = [
-	// /(?:.*\.)*(?<!(link\.|cdn\-images\-\d+\.))medium\.com(\/.*)?$/,
-	/^medium\.com/,
-	/.*\.medium\.com/,
-	// // Other domains of medium blogs, source(s): https://findingtom.com/best-medium-blogs-to-follow/#1-forge
-
-	/^towardsdatascience\.com/,
-	/^uxdesign\.cc/,
-	/^uxplanet\.org/,
-	/^betterprogramming\.pub/,
-	/^aninjusticemag\.com/,
-	/^betterhumans\.pub/,
-	/^psiloveyou\.xyz/,
-	/^entrepreneurshandbook\.co/,
-	/^blog\.coinbase\.com/,
-
-	/^ levelup\.gitconnected\.com /,
-	/^javascript\.plainenglish\.io /,
-	/^blog\.bitsrc\.io /,
-	/^ itnext\.io /,
-	/^codeburst\.io /,
-	/^infosecwriteups\.com /,
-	/^ blog\.devgenius.io /,
-	/^ writingcooperative\.com /,
-]
-
-const frontends = new Array("scribe")
-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.scribe = val
-			scribeNormalRedirectsChecks = [...redirects.scribe.normal]
-			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-				const a = scribeNormalRedirectsChecks.indexOf(instance)
-				if (a > -1) scribeNormalRedirectsChecks.splice(a, 1)
-			}
-			browser.storage.local.set(
-				{
-					mediumRedirects: redirects,
-					scribeNormalRedirectsChecks,
-					scribeTorRedirectsChecks: [...redirects.scribe.tor],
-					scribeI2pRedirectsChecks: [...redirects.scribe.i2p],
-					scribeLokiRedirectsChecks: [...redirects.scribe.loki],
-				},
-				() => resolve()
-			)
-		})
-	)
-}
-
-let disableMedium,
-	mediumRedirects,
-	scribeNormalRedirectsChecks,
-	scribeNormalCustomRedirects,
-	scribeTorRedirectsChecks,
-	scribeTorCustomRedirects,
-	scribeI2pCustomRedirects,
-	scribeLokiCustomRedirects,
-	protocol,
-	protocolFallback
-
-function init() {
-	return new Promise(resolve => {
-		browser.storage.local.get(
-			[
-				"disableMedium",
-				"mediumRedirects",
-				"scribeNormalRedirectsChecks",
-				"scribeNormalCustomRedirects",
-				"scribeTorRedirectsChecks",
-				"scribeTorCustomRedirects",
-				"scribeI2pCustomRedirects",
-				"scribeLokiCustomRedirects",
-				"protocol",
-				"protocolFallback",
-			],
-			r => {
-				disableMedium = r.disableMedium
-				mediumRedirects = r.mediumRedirects
-				scribeNormalRedirectsChecks = r.scribeNormalRedirectsChecks
-				scribeNormalCustomRedirects = r.scribeNormalCustomRedirects
-				scribeTorRedirectsChecks = r.scribeTorRedirectsChecks
-				scribeTorCustomRedirects = r.scribeTorCustomRedirects
-				scribeI2pCustomRedirects = r.scribeI2pCustomRedirects
-				scribeLokiCustomRedirects = r.scribeLokiCustomRedirects
-				protocol = r.protocol
-				protocolFallback = r.protocolFallback
-				resolve()
-			}
-		)
-	})
-}
-
-init()
-browser.storage.onChanged.addListener(init)
-
-function redirect(url, type, initiator, disableOverride) {
-	if (disableMedium && !disableOverride) return
-	if (url.pathname == "/" && !disableOverride) return
-	if (type != "main_frame" && "sub_frame" && "xmlhttprequest" && "other") return
-	if (
-		initiator &&
-		[...mediumRedirects.scribe.normal, ...mediumRedirects.scribe.tor, ...scribeNormalCustomRedirects, ...scribeTorCustomRedirects, ...scribeI2pCustomRedirects, ...scribeLokiCustomRedirects].includes(
-			initiator.origin
-		)
-	)
-		return
-
-	if (!targets.some(rx => rx.test(url.host))) return
-	if (/^\/(@[a-zA-Z.]{0,}(\/|)$)/.test(url.pathname)) return
-
-	let instancesList = []
-	if (protocol == "loki") instancesList = [...scribeLokiCustomRedirects]
-	else if (protocol == "i2p") instancesList = [...scribeI2pCustomRedirects]
-	else if (protocol == "tor") instancesList = [...scribeTorRedirectsChecks, ...scribeTorCustomRedirects]
-	if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-		instancesList = [...scribeNormalRedirectsChecks, ...scribeNormalCustomRedirects]
-	}
-	if (instancesList.length === 0) {
-		return
-	}
-
-	const randomInstance = utils.getRandomInstance(instancesList)
-	return `${randomInstance}${url.pathname}${url.search}`
-}
-
-function switchInstance(url, disableOverride) {
-	return new Promise(async resolve => {
-		await init()
-		if (disableMedium && !disableOverride) {
-			resolve()
-			return
-		}
-		let protocolHost = utils.protocolHost(url)
-		const all = [
-			...mediumRedirects.scribe.tor,
-			...mediumRedirects.scribe.normal,
-
-			...scribeNormalCustomRedirects,
-			...scribeTorCustomRedirects,
-			...scribeI2pCustomRedirects,
-			...scribeLokiCustomRedirects,
-		]
-		if (!all.includes(protocolHost)) {
-			resolve()
-			return
-		}
-
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...scribeLokiCustomRedirects]
-		else if (protocol == "i2p") instancesList = [...scribeI2pCustomRedirects]
-		else if (protocol == "tor") instancesList = [...scribeTorRedirectsChecks, ...scribeTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...scribeNormalRedirectsChecks, ...scribeNormalCustomRedirects]
-		}
-
-		const i = instancesList.indexOf(protocolHost)
-		if (i > -1) instancesList.splice(i, 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(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 => {
-					scribeNormalRedirectsChecks = [...redirects.scribe.normal]
-					for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-						const a = scribeNormalRedirectsChecks.indexOf(instance)
-						if (a > -1) scribeNormalRedirectsChecks.splice(a, 1)
-					}
-					browser.storage.local.set(
-						{
-							disableMedium: false,
-							mediumRedirects: redirects,
-
-							scribeNormalRedirectsChecks,
-							scribeNormalCustomRedirects: [],
-
-							scribeTorRedirectsChecks: [...redirects.scribe.tor],
-							scribeTorCustomRedirects: [],
-
-							scribeI2pRedirectsChecks: [...redirects.scribe.i2p],
-							scribeI2pCustomRedirects: [],
-
-							scribeLokiRedirectsChecks: [...redirects.scribe.loki],
-							scribeLokiCustomRedirects: [],
-						},
-						() => resolve()
-					)
-				})
-			})
-	})
-}
-
-export default {
-	setRedirects,
-	redirect,
-	switchInstance,
-	initDefaults,
-}