From 5b26b3f0516ede2aef7a8b0a40007e75eff50daa Mon Sep 17 00:00:00 2001 From: Jeremy Date: Thu, 3 Dec 2020 16:33:28 -0800 Subject: [PATCH 1/2] Change from constant polling to only onclick --- scripts/leetcode.js | 76 +++++++++++++++++++++++++-------------------- scripts/welcome.js | 1 - 2 files changed, 42 insertions(+), 35 deletions(-) diff --git a/scripts/leetcode.js b/scripts/leetcode.js index 5ab07d05..555f85cd 100644 --- a/scripts/leetcode.js +++ b/scripts/leetcode.js @@ -192,38 +192,46 @@ function parseQuestion() { return markdown; } -const loader = setInterval(() => { - let code = null; - let probStatement = null; - - const successTag = document.getElementsByClassName('success__3Ai7'); - if ( - successTag !== undefined && - successTag.length > 0 && - successTag[0].innerText.trim() === 'Success' - ) { - code = parseCode(); - probStatement = parseQuestion(); - } - if (code !== null && probStatement !== null) { - clearTimeout(loader); - const problemName = window.location.pathname.split('/')[2]; // must be true. - const language = findLanguage(); - if (language !== null) { - uploadGit( - btoa(unescape(encodeURIComponent(code))), - problemName, - problemName + language, - ); // Encode `code` to base64 - - /* @TODO: Change this setTimeout to Promise */ - setTimeout(function () { - uploadGit( - btoa(unescape(encodeURIComponent(probStatement))), - problemName, - 'README.md', - ); - }, 2000); - } +/* Only poll when submit button clicked */ +document.addEventListener('click', (event)=> { + const element = event.target; + if (element.classList.contains("css-gahzfj-sm") || element.parentElement.classList.contains("css-gahzfj-sm")) { + const loader = setInterval(() => { + let code = null; + let probStatement = null; + + const successTag = document.getElementsByClassName('success__3Ai7'); + if ( + successTag !== undefined && + successTag.length > 0 && + successTag[0].innerText.trim() === 'Success' + ) { + code = parseCode(); + probStatement = parseQuestion(); + } + if (code !== null && probStatement !== null) { + clearTimeout(loader); + const problemName = window.location.pathname.split('/')[2]; // must be true. + const language = findLanguage(); + if (language !== null) { + uploadGit( + btoa(unescape(encodeURIComponent(code))), + problemName, + problemName + language, + ); // Encode `code` to base64 + + /* @TODO: Change this setTimeout to Promise */ + setTimeout(function () { + uploadGit( + btoa(unescape(encodeURIComponent(probStatement))), + problemName, + 'README.md', + ); + }, 2000); + } + } + }, 1000); } -}, 1000); +}) + + diff --git a/scripts/welcome.js b/scripts/welcome.js index fc87f0d7..ce36d598 100644 --- a/scripts/welcome.js +++ b/scripts/welcome.js @@ -166,7 +166,6 @@ const linkRepo = (token, name) => { 'none'; } else { /* Change mode type to commit */ - /* Save repo url to chrome storage */ chrome.storage.sync.set( { mode_type: 'commit', repo: res.html_url }, () => { From 429949bcfbebe5ce8fb0ba20b933c1ff222c85b5 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Thu, 3 Dec 2020 16:36:04 -0800 Subject: [PATCH 2/2] Fix formatting --- scripts/leetcode.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/scripts/leetcode.js b/scripts/leetcode.js index 555f85cd..9e26f6f5 100644 --- a/scripts/leetcode.js +++ b/scripts/leetcode.js @@ -193,14 +193,19 @@ function parseQuestion() { } /* Only poll when submit button clicked */ -document.addEventListener('click', (event)=> { +document.addEventListener('click', (event) => { const element = event.target; - if (element.classList.contains("css-gahzfj-sm") || element.parentElement.classList.contains("css-gahzfj-sm")) { + if ( + element.classList.contains('css-gahzfj-sm') || + element.parentElement.classList.contains('css-gahzfj-sm') + ) { const loader = setInterval(() => { let code = null; let probStatement = null; - - const successTag = document.getElementsByClassName('success__3Ai7'); + + const successTag = document.getElementsByClassName( + 'success__3Ai7', + ); if ( successTag !== undefined && successTag.length > 0 && @@ -219,7 +224,7 @@ document.addEventListener('click', (event)=> { problemName, problemName + language, ); // Encode `code` to base64 - + /* @TODO: Change this setTimeout to Promise */ setTimeout(function () { uploadGit( @@ -232,6 +237,4 @@ document.addEventListener('click', (event)=> { } }, 1000); } -}) - - +});