about summary refs log tree commit diff stats
path: root/src/assets/javascripts/translate
diff options
context:
space:
mode:
authorHygna <hygna@proton.me>2022-09-29 18:32:03 +0100
committerHygna <hygna@proton.me>2022-09-29 18:32:03 +0100
commitf1b8b64c48fede90ee9c828c1b82e641c0fe653d (patch)
tree44b55dfde203a223d57e6dcfd717dad7614e3b54 /src/assets/javascripts/translate
parentUnify cookies (diff)
downloadlibredirect-f1b8b64c48fede90ee9c828c1b82e641c0fe653d.zip
Changes:
Improved instance fetcher

Added instance updating

Fix a few bugs
Diffstat (limited to 'src/assets/javascripts/translate')
-rw-r--r--src/assets/javascripts/translate/get_lingva_preferences.js10
-rw-r--r--src/assets/javascripts/translate/set_lingva_preferences.js9
-rw-r--r--src/assets/javascripts/translate/translate.js372
3 files changed, 0 insertions, 391 deletions
diff --git a/src/assets/javascripts/translate/get_lingva_preferences.js b/src/assets/javascripts/translate/get_lingva_preferences.js
deleted file mode 100644
index 0d6ff6ec..00000000
--- a/src/assets/javascripts/translate/get_lingva_preferences.js
+++ /dev/null
@@ -1,10 +0,0 @@
-window.browser = window.browser || window.chrome
-
-browser.storage.local.set({
-	["lingva_chakra-ui-color-mode"]: localStorage.getItem("chakra-ui-color-mode"),
-	lingva_isauto: localStorage.getItem("isauto"),
-	lingva_source: localStorage.getItem("source"),
-	lingva_target: localStorage.getItem("target"),
-})
-
-console.log(localStorage.getItem("target"))
diff --git a/src/assets/javascripts/translate/set_lingva_preferences.js b/src/assets/javascripts/translate/set_lingva_preferences.js
deleted file mode 100644
index 04a36e1b..00000000
--- a/src/assets/javascripts/translate/set_lingva_preferences.js
+++ /dev/null
@@ -1,9 +0,0 @@
-window.browser = window.browser || window.chrome
-
-browser.storage.local.get(["lingva_chakra-ui-color-mode", "lingva_isauto", "lingva_source", "lingva_target"], r => {
-	if (r["lingva_chakra-ui-color-mode"] !== undefined) localStorage.setItem("chakra-ui-color-mode", r["lingva_chakra-ui-color-mode"])
-	if (r.lingva_isauto !== undefined) localStorage.setItem("isauto", r.lingva_isauto)
-	if (r.lingva_source !== undefined) localStorage.setItem("source", r.lingva_source)
-	if (r.lingva_target !== undefined) localStorage.setItem("target", r.lingva_target)
-	window.close()
-})
diff --git a/src/assets/javascripts/translate/translate.js b/src/assets/javascripts/translate/translate.js
deleted file mode 100644
index 993c630f..00000000
--- a/src/assets/javascripts/translate/translate.js
+++ /dev/null
@@ -1,372 +0,0 @@
-window.browser = window.browser || window.chrome
-
-import utils from "../utils.js"
-
-const targets = [/^https?:\/{2}translate\.google(\.[a-z]{2,3}){1,2}\//]
-
-const frontends = new Array("simplyTranslate", "lingva")
-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]] = []
-	}
-}
-
-let translateDisable,
-	translateFrontend,
-	protocol,
-	protocolFallback,
-	translateRedirects,
-	simplyTranslateNormalRedirectsChecks,
-	simplyTranslateNormalCustomRedirects,
-	simplyTranslateTorRedirectsChecks,
-	simplyTranslateTorCustomRedirects,
-	simplyTranslateI2pRedirectsChecks,
-	simplyTranslateI2pCustomRedirects,
-	simplyTranslateLokiRedirectsChecks,
-	simplyTranslateLokiCustomRedirects,
-	lingvaNormalRedirectsChecks,
-	lingvaNormalCustomRedirects,
-	lingvaTorRedirectsChecks,
-	lingvaTorCustomRedirects,
-	lingvaI2pCustomRedirects,
-	lingvaLokiCustomRedirects
-
-function init() {
-	return new Promise(resolve => {
-		browser.storage.local.get(
-			[
-				"translateDisable",
-				"translateFrontend",
-				"protocol",
-				"protocolFallback",
-				"translateRedirects",
-				"simplyTranslateNormalRedirectsChecks",
-				"simplyTranslateNormalCustomRedirects",
-				"simplyTranslateTorRedirectsChecks",
-				"simplyTranslateTorCustomRedirects",
-				"simplyTranslateI2pRedirectsChecks",
-				"simplyTranslateI2pCustomRedirects",
-				"simplyTranslateLokiRedirectsChecks",
-				"simplyTranslateLokiCustomRedirects",
-
-				"lingvaNormalRedirectsChecks",
-				"lingvaNormalCustomRedirects",
-				"lingvaTorRedirectsChecks",
-				"lingvaTorCustomRedirects",
-				"lingvaI2pCustomRedirects",
-				"lingvaLokiCustomRedirects",
-			],
-			r => {
-				translateDisable = r.translateDisable
-				translateFrontend = r.translateFrontend
-				protocol = r.protocol
-				protocolFallback = r.protocolFallback
-				translateRedirects = r.translateRedirects
-				simplyTranslateNormalRedirectsChecks = r.simplyTranslateNormalRedirectsChecks
-				simplyTranslateNormalCustomRedirects = r.simplyTranslateNormalCustomRedirects
-				simplyTranslateTorRedirectsChecks = r.simplyTranslateTorRedirectsChecks
-				simplyTranslateTorCustomRedirects = r.simplyTranslateTorCustomRedirects
-				simplyTranslateI2pRedirectsChecks = r.simplyTranslateI2pRedirectsChecks
-				simplyTranslateI2pCustomRedirects = r.simplyTranslateI2pCustomRedirects
-				simplyTranslateLokiRedirectsChecks = r.simplyTranslateLokiRedirectsChecks
-				simplyTranslateLokiCustomRedirects = r.simplyTranslateLokiCustomRedirects
-				lingvaNormalRedirectsChecks = r.lingvaNormalRedirectsChecks
-				lingvaNormalCustomRedirects = r.lingvaNormalCustomRedirects
-				lingvaTorRedirectsChecks = r.lingvaTorRedirectsChecks
-				lingvaTorCustomRedirects = r.lingvaTorCustomRedirects
-				lingvaI2pCustomRedirects = r.lingvaI2pCustomRedirects
-				lingvaLokiCustomRedirects = r.lingvaLokiCustomRedirects
-				resolve()
-			}
-		)
-	})
-}
-
-init()
-browser.storage.onChanged.addListener(init)
-
-function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects = val
-		simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal]
-		lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = simplyTranslateNormalCustomRedirects.indexOf(instance)
-			if (a > -1) simplyTranslateNormalCustomRedirects.splice(a, 1)
-
-			const b = lingvaNormalRedirectsChecks.indexOf(instance)
-			if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1)
-		}
-		browser.storage.local.set({
-			translateRedirects: redirects,
-			simplyTranslateNormalRedirectsChecks,
-			simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
-			simplyTranslateI2pRedirectsChecks: [...redirects.simplyTranslate.i2p],
-			simplyTranslateLokiRedirectsChecks: [...redirects.simplyTranslate.loki],
-			lingvaNormalRedirectsChecks,
-			lingvaTorRedirectsChecks: [...redirects.lingva.tor],
-			lingvaI2pRedirectsChecks: [...redirects.lingva.i2p],
-			lingvaLokiRedirectsChecks: [...redirects.lingva.loki],
-		})
-	})
-}
-
-function copyPasteLingvaLocalStorage(test, url, tabId) {
-	return new Promise(async resolve => {
-		await init()
-		if (translateDisable || translateFrontend != "lingva") {
-			resolve()
-			return
-		}
-		const protocolHost = utils.protocolHost(url)
-		if (
-			![...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects, ...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects, ...lingvaI2pCustomRedirects, ...lingvaLokiCustomRedirects].includes(
-				protocolHost
-			)
-		) {
-			resolve()
-			return
-		}
-
-		if (!test) {
-			browser.tabs.executeScript(tabId, {
-				file: "/assets/javascripts/translate/get_lingva_preferences.js",
-				runAt: "document_start",
-			})
-
-			let checkedInstances = []
-			if (protocol == "loki") checkedInstances = [...lingvaLokiCustomRedirects]
-			//...lingvaLokiRedirectsChecks,
-			else if (protocol == "i2p") checkedInstances = [...lingvaI2pCustomRedirects]
-			//...lingvaI2pRedirectsChecks,
-			else if (protocol == "tor") checkedInstances = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]
-			if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
-				checkedInstances = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects]
-			}
-			const i = checkedInstances.indexOf(protocolHost)
-			if (i !== -1) checkedInstances.splice(i, 1)
-			if (checkedInstances.length === 0) {
-				resolve()
-				return
-			}
-			for (const to of checkedInstances)
-				browser.tabs.create({ url: to }, tab =>
-					browser.tabs.executeScript(tab.id, {
-						file: "/assets/javascripts/translate/set_lingva_preferences.js",
-						runAt: "document_start",
-					})
-				)
-		}
-		resolve(true)
-	})
-}
-
-function copyPasteSimplyTranslateCookies(test, from) {
-	return new Promise(async resolve => {
-		await init()
-		const protocolHost = utils.protocolHost(from)
-		if (
-			![
-				...simplyTranslateNormalRedirectsChecks,
-				...simplyTranslateNormalCustomRedirects,
-				...simplyTranslateTorRedirectsChecks,
-				...simplyTranslateTorCustomRedirects,
-				...simplyTranslateI2pRedirectsChecks,
-				...simplyTranslateI2pCustomRedirects,
-				...simplyTranslateLokiRedirectsChecks,
-				...simplyTranslateLokiCustomRedirects,
-			].includes(protocolHost)
-		) {
-			resolve()
-			return
-		}
-		if (!test) {
-			let checkedInstances = []
-			if (protocol == "loki") checkedInstances = [...simplyTranslateLokiRedirectsChecks, ...simplyTranslateLokiCustomRedirects]
-			else if (protocol == "i2p") checkedInstances = [...simplyTranslateI2pCustomRedirects, ...simplyTranslateI2pRedirectsChecks]
-			else if (protocol == "tor") checkedInstances = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]
-			if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
-				checkedInstances = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]
-			}
-			await utils.copyCookie("simplyTranslate", from, checkedInstances, "from_lang")
-			await utils.copyCookie("simplyTranslate", from, checkedInstances, "to_lang")
-			await utils.copyCookie("simplyTranslate", from, checkedInstances, "tts_enabled")
-			await utils.copyCookie("simplyTranslate", from, checkedInstances, "use_text_fields")
-		}
-		resolve(true)
-	})
-}
-
-function redirect(url, disableOverride) {
-	if (translateDisable && !disableOverride) return
-	if (!targets.some(rx => rx.test(url.href))) return
-
-	if (translateFrontend == "simplyTranslate") {
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...simplyTranslateLokiRedirectsChecks, ...simplyTranslateLokiCustomRedirects]
-		else if (protocol == "i2p") instancesList = [...simplyTranslateI2pRedirectsChecks, ...simplyTranslateI2pCustomRedirects]
-		else if (protocol == "tor") instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]
-		}
-		if (instancesList.length === 0) return
-
-		const randomInstance = utils.getRandomInstance(instancesList)
-		return `${randomInstance}/${url.search}`
-	} else if (translateFrontend == "lingva") {
-		let params_arr = url.search.split("&")
-		params_arr[0] = params_arr[0].substring(1)
-		let params = {}
-		for (let i = 0; i < params_arr.length; i++) {
-			let pair = params_arr[i].split("=")
-			params[pair[0]] = pair[1]
-		}
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...lingvaLokiCustomRedirects]
-		//...lingvaLokiRedirectsChecks,
-		else if (protocol == "i2p") instancesList = [...lingvaI2pCustomRedirects] //...lingvaI2pRedirectsChecks,
-		if (protocol == "tor") instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects]
-		}
-		if (instancesList.length === 0) return
-
-		const randomInstance = utils.getRandomInstance(instancesList)
-		if (params.sl && params.tl && params.text) {
-			return `${randomInstance}/${params.sl}/${params.tl}/${params.text}`
-		}
-		return randomInstance
-	}
-}
-
-function switchInstance(url, disableOverride) {
-	return new Promise(async resolve => {
-		await init()
-		if (translateDisable && !disableOverride) {
-			resolve()
-			return
-		}
-		const protocolHost = utils.protocolHost(url)
-		if (
-			![
-				...translateRedirects.simplyTranslate.normal,
-				...translateRedirects.simplyTranslate.tor,
-				...translateRedirects.simplyTranslate.i2p,
-				...translateRedirects.simplyTranslate.loki,
-
-				...simplyTranslateNormalCustomRedirects,
-				...simplyTranslateTorCustomRedirects,
-				...simplyTranslateI2pCustomRedirects,
-				...simplyTranslateLokiCustomRedirects,
-
-				...translateRedirects.lingva.normal,
-				...translateRedirects.lingva.tor,
-
-				...lingvaNormalCustomRedirects,
-				...lingvaTorCustomRedirects,
-				...lingvaI2pCustomRedirects,
-				...lingvaLokiCustomRedirects,
-			].includes(protocolHost)
-		) {
-			resolve()
-			return
-		}
-
-		let instancesList = []
-
-		if (protocol == "loki") {
-			if (translateFrontend == "simplyTranslate") instancesList = [...simplyTranslateLokiRedirectsChecks, ...simplyTranslateLokiCustomRedirects]
-			else if (translateFrontend == "lingva") instancesList = [...lingvaLokiCustomRedirects] //...lingvaLokiRedirectsChecks,
-		} else if (protocol == "i2p") {
-			if (translateFrontend == "simplyTranslate") instancesList = [...simplyTranslateI2pRedirectsChecks, ...simplyTranslateI2pCustomRedirects]
-			else if (translateFrontend == "lingva") instancesList = [...lingvaI2pCustomRedirects] //...lingvaI2pRedirectsChecks,
-		} else if (protocol == "tor") {
-			if (translateFrontend == "simplyTranslate") instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]
-			else if (translateFrontend == "lingva") instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]
-		}
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			if (translateFrontend == "simplyTranslate") instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]
-			else if (translateFrontend == "lingva") instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects]
-		}
-
-		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(async 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 => {
-					simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal]
-					lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
-					for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-						const a = simplyTranslateNormalRedirectsChecks.indexOf(instance)
-						if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1)
-
-						const b = lingvaNormalRedirectsChecks.indexOf(instance)
-						if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1)
-					}
-					browser.storage.local.set(
-						{
-							translateDisable: false,
-							translateFrontend: "simplyTranslate",
-							translateRedirects: redirects,
-
-							simplyTranslateNormalRedirectsChecks,
-							simplyTranslateNormalCustomRedirects: [],
-
-							simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
-							simplyTranslateTorCustomRedirects: [],
-
-							simplyTranslateI2pRedirectsChecks: [...redirects.simplyTranslate.i2p],
-							simplyTranslateI2pCustomRedirects: [],
-
-							simplyTranslateLokiRedirectsChecks: [...redirects.simplyTranslate.loki],
-							simplyTranslateLokiCustomRedirects: [],
-
-							lingvaNormalRedirectsChecks,
-							lingvaNormalCustomRedirects: [],
-
-							lingvaTorRedirectsChecks: [...redirects.lingva.tor],
-							lingvaTorCustomRedirects: [],
-
-							lingvaI2pRedirectsChecks: [...redirects.lingva.i2p],
-							lingvaI2pCustomRedirects: [],
-
-							lingvaLokiRedirectsChecks: [...redirects.lingva.loki],
-							lingvaLokiCustomRedirects: [],
-						},
-						() => resolve()
-					)
-				})
-			})
-	})
-}
-
-export default {
-	copyPasteSimplyTranslateCookies,
-	copyPasteLingvaLocalStorage,
-	setRedirects,
-	redirect,
-	initDefaults,
-	switchInstance,
-}