about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/helpers/google-translate.js82
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,
 };
-
-
-
-
-
-