diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-02-02 19:13:44 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-02-02 19:13:44 +0300 |
commit | 84333daedea4215a0d6b51cfce0f057e86b5477f (patch) | |
tree | 21a871ab9566fa1fb2be2dc89f90c95714bea3b0 /src/assets/javascripts/helpers | |
parent | Merge branch 'master' of https://github.com/libredirect/LibRedirect (diff) | |
download | libredirect-84333daedea4215a0d6b51cfce0f057e86b5477f.zip |
Added Lingva #16
Diffstat (limited to 'src/assets/javascripts/helpers')
-rw-r--r-- | src/assets/javascripts/helpers/google-translate.js | 82 |
1 files changed, 63 insertions, 19 deletions
diff --git a/src/assets/javascripts/helpers/google-translate.js b/src/assets/javascripts/helpers/google-translate.js index 025a2446..b9a783ff 100644 --- a/src/assets/javascripts/helpers/google-translate.js +++ b/src/assets/javascripts/helpers/google-translate.js @@ -1,19 +1,34 @@ +import commonHelper from './common.js' + const targets = [ "translate.google.com", "translate.google.no" ]; const redirects = { - "normal": [ - "https://translate.metalune.xyz", - "https://simplytranslate.org", - "https://st.alefvanoon.xyz", - "https://translate.josias.dev", - "https://translate.namazso.eu", - "https://translate.riverside.rocks", - "https://manerakai.asuscomm.com:447", - "https://translate.bus-hit.me" - ] + "simplyTranslate": { + "normal": [ + "https://simplytranslate.org", + "https://st.alefvanoon.xyz", + "https://translate.josias.dev", + "https://translate.namazso.eu", + "https://translate.riverside.rocks", + "https://manerakai.asuscomm.com:447", + "https://translate.bus-hit.me", + "https://simplytranslate.pussthecat.org", + ] + }, + + "lingva": { + "normal": [ + "https://lingva.ml", + "https://translate.alefvanoon.xyz", + "https://translate.igna.rocks", + "https://lingva.pussthecat.org", + "https://translate.datatunnel.xyz", + ] + } + }; let disableSimplyTranslate; @@ -31,20 +46,53 @@ function setSimplyTranslateInstance(val) { browser.storage.sync.set({ simplyTranslateInstance }) }; +let translateFrontend; +const getFrontend = () => translateFrontend; +function setFrontend(val) { + translateFrontend = val; + browser.storage.sync.set({ translateFrontend }) + console.log("Translate frontend: ", frontend) +} + async function redirect(url, initiator) { await init() - if (disableSimplyTranslate) - return null; - return `${simplyTranslateInstance}/${url.search}`; + if (disableSimplyTranslate) { + console.log("SImplyTranslte disabled") + return null + }; + + let link; + if (translateFrontend == 'simplyTransalte') { + link = commonHelper.getRandomInstance(redirects.simplyTranslate.normal); + console.log(`${link}/${url.search}`); + return `${link}/${url.search}`; + } + else if (translateFrontend == 'lingva') { + let params_arr = url.search.split('&'); + params_arr[0] = params_arr[0].substring(1); + let myMap = new Map(); + for (let i = 0; i < params_arr.length; i++) { + let pair = params_arr[i].split('='); + myMap.set(pair[0], pair[1]); + } + link = commonHelper.getRandomInstance(redirects.lingva.normal); + if (myMap.get("sl") && myMap.get("tl") && myMap.get("text")) + return `${link}/${myMap.get("sl")}/${myMap.get("tl")}/${myMap.get("text")}`; + else + return link; + } } + async function init() { let result = await browser.storage.sync.get([ "disableSimplyTranslate", "simplyTranslateInstance", + "translateFrontend" ]); disableSimplyTranslate = result.disableSimplyTranslate || false; simplyTranslateInstance = result.simplyTranslateInstance; + translateFrontend = result.translateFrontend || "simplyTransalte"; } export default { @@ -54,12 +102,8 @@ export default { setDisableSimplyTranslate, getSimplyTranslateInstance, setSimplyTranslateInstance, + getFrontend, + setFrontend, redirect, init, }; - - - - - - |