commit d185d661783f045cd82ea20a8c90951825e8b4f8 Author: OverPoweredDev Date: Mon Jul 12 13:50:14 2021 +0530 got stuck in async/await hell send help please diff --git a/src/content/content.js b/src/content/content.js index e0bd10c..1c1268f 100644 --- a/src/content/content.js +++ b/src/content/content.js @@ -20,15 +20,18 @@ browser.runtime.onMessage.addListener(async function(request, sender, sendRespon } if(!sourceLanguage) { - sourceLanguage = await getWebsiteLanguage(); + sourceLanguage = 'eng'; + console.log(sourceLanguage) } - if(verifyLangPairs(sourceLanguage, settings.defaultLanguage)) { + if(await verifyLangPairs(sourceLanguage, settings.defaultLanguage)) { await translateWebpage(sourceLanguage, settings.defaultLanguage); sendResponse({translated: true}); } else { sendResponse({translated: false, problem: 'Invalid Language Pair'}); } + + return true; }); async function addHoverElements(settings) { @@ -43,6 +46,6 @@ async function addHoverElements(settings) { } function getWebsiteLanguage(){ - let text = $('body')[0].innerText.substring(0,400); + let text = $('body')[0].innerText.substring(0,500); return detectLanguage(text); } \ No newline at end of file diff --git a/src/lib/storage.js b/src/lib/storage.js index 7b9cc4a..b5927ed 100644 --- a/src/lib/storage.js +++ b/src/lib/storage.js @@ -34,8 +34,8 @@ function getLangPairs() { return JSON.parse(langPairs); } -function verifyLangPairs(sourceLang, targetLang) { - let langPairs = getLangPairs().langPairs; +async function verifyLangPairs(sourceLang, targetLang) { + let langPairs = await getLangPairs().langPairs; let langPairExists = (pair) => pair.sourceLanguage === sourceLang && pair.targetLanguage === targetLang return langPairs.some(langPairExists) } @@ -62,11 +62,13 @@ function createLanguagePairs(languageList) { async function updateLanguagePairs() { let time = new Date().toLocaleString(); + let settings = getGlobalSettings(); let languageList = await fetchLanguageList(getLangPairsEndpoint()); let languagePairsJSON = JSON.stringify(createLanguagePairs(languageList)); localStorage.setItem("apertium.langPairs", languagePairsJSON); - getGlobalSettings().lastUpdated = time; + settings.lastUpdated = time; + saveGlobalSettings(settings); } function getLanguageCodeMap(){ diff --git a/src/lib/translate.js b/src/lib/translate.js index f003c07..5092416 100644 --- a/src/lib/translate.js +++ b/src/lib/translate.js @@ -43,6 +43,7 @@ async function translateWebpage(sourceLanguage, targetLanguage) { let textElements = []; + // on passing the entire body it just returns the body again so I'm passing the children individually $('body').children().each(function () { getBlockNodes($(this)[0], textElements); }); @@ -60,7 +61,7 @@ function createNewDocument(nodeList) { nodeList.forEach((node, index) => { data += '<' + index + '>'; - data += node.innerHTML; + data += node; data += '<' + index + '>\n\n'; }) @@ -137,7 +138,7 @@ function getBlockNodes(body, uniqueTextNodesList) { if (blockNodesList[i]) { blockNodesList[i].setAttribute('data-replace-id', uniqueTextNodesList.length); - uniqueTextNodesList.push(blockNodesList[i]); + uniqueTextNodesList.push(blockNodesList[i].innerHTML); } } diff --git a/src/popup/popup.js b/src/popup/popup.js index 6857d32..6a07e7e 100644 --- a/src/popup/popup.js +++ b/src/popup/popup.js @@ -94,7 +94,7 @@ $("#translate-button").on('click', async function () { let targetLanguage = await getTargetLanguage(); if (!targetLanguage || targetLanguage === 'select') return; - if(!verifyLangPairs(sourceLanguage, targetLanguage)) return; + if(!(await verifyLangPairs(sourceLanguage, targetLanguage))) return; getTranslation(translateInput, sourceLanguage, targetLanguage).then(translateOutput => { $(".output-text-box").val(translateOutput); diff --git a/src/settings/settings.css b/src/settings/settings.css index 3ff85f4..59e3ed5 100644 --- a/src/settings/settings.css +++ b/src/settings/settings.css @@ -111,7 +111,7 @@ tr, td, th { max-height: 30em; width: 10em; box-shadow: 0 0.2em 0.4em 0 rgba(0,0,0,0.2); - z-index: 2; + z-index: 50; overflow-y: auto; } diff --git a/src/settings/settings.js b/src/settings/settings.js index c972067..9aaeb69 100644 --- a/src/settings/settings.js +++ b/src/settings/settings.js @@ -22,7 +22,7 @@ $(".enabled-language").on('click', function () { $("#update-button").on('click', async function () { await updateLanguagePairs(); - saveGlobalSettings(globalSettings); + setLastUpdated(new Date().toLocaleString()); }); $("#source-select").on('click', async function () { @@ -30,17 +30,19 @@ $("#source-select").on('click', async function () { switch (selectedSource) { case "Apertium Release": globalSettings.apertiumSource = "https://apertium.org/apy/"; + saveGlobalSettings(globalSettings); break; case "Apertium Beta": globalSettings.apertiumSource = "https://beta.apertium.org/apy/"; + saveGlobalSettings(globalSettings); break; case "Local/Custom Source": alert("Option not available yet"); break; } await updateLanguagePairs(); + setLastUpdated(new Date().toLocaleString()); createDropdown($("#target-language-dropdown")); - saveGlobalSettings(globalSettings); }); // Delete a website from hover-enabled table