Added Lingva #16

This commit is contained in:
ManeraKai 2022-02-02 19:13:44 +03:00
parent 538ae70909
commit 84333daede
No known key found for this signature in database
GPG Key ID: 5ABC31FFD562E337
4 changed files with 88 additions and 24 deletions

View File

@ -1,19 +1,34 @@
import commonHelper from './common.js'
const targets = [ const targets = [
"translate.google.com", "translate.google.com",
"translate.google.no" "translate.google.no"
]; ];
const redirects = { const redirects = {
"normal": [ "simplyTranslate": {
"https://translate.metalune.xyz", "normal": [
"https://simplytranslate.org", "https://simplytranslate.org",
"https://st.alefvanoon.xyz", "https://st.alefvanoon.xyz",
"https://translate.josias.dev", "https://translate.josias.dev",
"https://translate.namazso.eu", "https://translate.namazso.eu",
"https://translate.riverside.rocks", "https://translate.riverside.rocks",
"https://manerakai.asuscomm.com:447", "https://manerakai.asuscomm.com:447",
"https://translate.bus-hit.me" "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; let disableSimplyTranslate;
@ -31,20 +46,53 @@ function setSimplyTranslateInstance(val) {
browser.storage.sync.set({ simplyTranslateInstance }) 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) { async function redirect(url, initiator) {
await init() await init()
if (disableSimplyTranslate) if (disableSimplyTranslate) {
return null; console.log("SImplyTranslte disabled")
return `${simplyTranslateInstance}/${url.search}`; 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() { async function init() {
let result = await browser.storage.sync.get([ let result = await browser.storage.sync.get([
"disableSimplyTranslate", "disableSimplyTranslate",
"simplyTranslateInstance", "simplyTranslateInstance",
"translateFrontend"
]); ]);
disableSimplyTranslate = result.disableSimplyTranslate || false; disableSimplyTranslate = result.disableSimplyTranslate || false;
simplyTranslateInstance = result.simplyTranslateInstance; simplyTranslateInstance = result.simplyTranslateInstance;
translateFrontend = result.translateFrontend || "simplyTransalte";
} }
export default { export default {
@ -54,12 +102,8 @@ export default {
setDisableSimplyTranslate, setDisableSimplyTranslate,
getSimplyTranslateInstance, getSimplyTranslateInstance,
setSimplyTranslateInstance, setSimplyTranslateInstance,
getFrontend,
setFrontend,
redirect, redirect,
init, init,
}; };

View File

@ -58,9 +58,11 @@ browser.webRequest.onBeforeRequest.addListener(
else if (mediumHelper.targets.some((rx) => rx.test(url.host))) newUrl = await mediumHelper.redirect(url, initiator); else if (mediumHelper.targets.some((rx) => rx.test(url.host))) newUrl = await mediumHelper.redirect(url, initiator);
else if (googleTranslateHelper.targets.includes(url.host)) newUrl = await googleTranslateHelper.redirect(url, initiator);
else if (searchHelper.targets.some((rx) => rx.test(url.href))) newUrl = await searchHelper.redirect(url, initiator) else if (searchHelper.targets.some((rx) => rx.test(url.href))) newUrl = await searchHelper.redirect(url, initiator)
else if (googleTranslateHelper.targets.includes(url.host)) newUrl = await googleTranslateHelper.redirect(url, initiator);
else if (url.host.match(wikipediaHelper.targets)) newUrl = await wikipediaHelper.redirect(url, initiator); else if (url.host.match(wikipediaHelper.targets)) newUrl = await wikipediaHelper.redirect(url, initiator);
@ -93,7 +95,8 @@ browser.tabs.onUpdated.addListener((tabId, changeInfo, _) => {
redditHelper.redirects.mobile, redditHelper.redirects.mobile,
...searchHelper.redirects.searx.normal, ...searchHelper.redirects.searx.normal,
...searchHelper.redirects.whoogle.normal, ...searchHelper.redirects.whoogle.normal,
...googleTranslateHelper.redirects.normal, ...googleTranslateHelper.redirects.simplyTranslate.normal,
...googleTranslateHelper.redirects.lingva.normal,
...mediumHelper.redirects.normal, ...mediumHelper.redirects.normal,
...wikipediaHelper.redirects.normal ...wikipediaHelper.redirects.normal
); );
@ -127,7 +130,10 @@ browser.pageAction.onClicked.addListener((tab) => {
searchHelper.redirects.whoogle.normal.includes(protocolHost) searchHelper.redirects.whoogle.normal.includes(protocolHost)
) newUrl = 'https://google.com'; ) newUrl = 'https://google.com';
if (googleTranslateHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://translate.google.com'; if (
googleTranslateHelper.redirects.simplyTranslate.normal.includes(protocolHost) ||
googleTranslateHelper.redirects.lingva.normal.includes(protocolHost)
) newUrl = 'https://translate.google.com';
if (mediumHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://medium.com'; if (mediumHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://medium.com';

View File

@ -33,8 +33,15 @@
<input id="simplyTranslate-instance" type="url" placeholder="https://translate.metalune.xyz" /> <input id="simplyTranslate-instance" type="url" placeholder="https://translate.metalune.xyz" />
</div> </div>
</div> --> </div> -->
</section>
<div class="some-block option-block">
<h4>Frontend</h4>
<select id="translate-frontend">
<option value="simplyTransalte">SimplyTransalte</option>
<option value="lingva">Lingva</option>
</select>
</div>
</section>
<script type="module" src="./init.js"></script> <script type="module" src="./init.js"></script>
<script type="module" src="./translate.js"></script> <script type="module" src="./translate.js"></script>

View File

@ -1,11 +1,18 @@
import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js"; import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
let disableSimplyTranslateElement = document.getElementById("disable-simplyTranslate"); let disableSimplyTranslateElement = document.getElementById("disable-simplyTranslate");
let translateFrontendElement = document.getElementById("translate-frontend");
googleTranslateHelper.init().then(() => { googleTranslateHelper.init().then(() => {
disableSimplyTranslateElement.checked = !googleTranslateHelper.getDisableSimplyTranslate(); disableSimplyTranslateElement.checked = !googleTranslateHelper.getDisableSimplyTranslate();
translateFrontendElement.value = googleTranslateHelper.getFrontend();
}); });
disableSimplyTranslateElement.addEventListener("change", disableSimplyTranslateElement.addEventListener("change",
(event) => googleTranslateHelper.setDisableSimplyTranslate(!event.target.checked) (event) => googleTranslateHelper.setDisableSimplyTranslate(!event.target.checked)
); );
translateFrontendElement.addEventListener("change",
(event) => googleTranslateHelper.setFrontend(event.target.options[translateFrontendElement.selectedIndex].value)
);