diff options
Diffstat (limited to 'src/pages')
-rw-r--r-- | src/pages/background/background.js | 63 | ||||
-rw-r--r-- | src/pages/background/reset_warning.html | 13 | ||||
-rw-r--r-- | src/pages/background/reset_warning.js | 11 | ||||
-rw-r--r-- | src/pages/options/index.js | 9 | ||||
-rw-r--r-- | src/pages/options/widgets/general.js | 89 | ||||
-rw-r--r-- | src/pages/popup/popup.js | 1 |
6 files changed, 126 insertions, 60 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js index b8787f34..afb63c51 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -21,38 +21,59 @@ import lbryHelper from "../../assets/javascripts/lbry.js"; window.browser = window.browser || window.chrome; +function openResetWarning() { + return new Promise(resolve => { + browser.storage.local.get(null, r => { + const old = encodeURIComponent(JSON.stringify(r)) + browser.tabs.create({ url: browser.runtime.getURL(`/pages/background/reset_warning.html?data=${old}`) }); + resolve(); + }) + }) +} + + browser.runtime.onInstalled.addListener( async details => { // if (details.reason == 'install') { - if (details.reason == 'install' || details.reason == "update") { - if (details.reason == "update") browser.tabs.create({ url: browser.runtime.getURL("/pages/background/reset_warning.html") }); + if (details.reason == 'install' || (details.reason == "update" && details.previousVersion != browser.runtime.getManifest().version)) { + if (details.reason == "update") await openResetWarning(); fetch('/instances/blacklist.json').then(response => response.text()).then(async data => { - await browser.storage.local.clear(); - await browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare }) - await browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate }) - generalHelper.initDefaults(); - youtubeHelper.initDefaults(); - youtubeMusicHelper.initDefaults(); - twitterHelper.initDefaults(); - instagramHelper.initDefaults(); - mapsHelper.initDefaults(); - searchHelper.initDefaults(); - translateHelper.initDefaults(); - mediumHelper.initDefaults(); - redditHelper.initDefaults(); - wikipediaHelper.initDefaults(); - imgurHelper.initDefaults(); - tiktokHelper.initDefaults(); - sendTargetsHelper.initDefaults(); - peertubeHelper.initDefaults(); - lbryHelper.initDefaults(); + browser.storage.local.clear( + () => { + browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare }, + () => { + browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate }, + () => { + generalHelper.initDefaults(); + youtubeHelper.initDefaults(); + youtubeMusicHelper.initDefaults(); + twitterHelper.initDefaults(); + instagramHelper.initDefaults(); + mapsHelper.initDefaults(); + searchHelper.initDefaults(); + translateHelper.initDefaults(); + mediumHelper.initDefaults(); + redditHelper.initDefaults(); + wikipediaHelper.initDefaults(); + imgurHelper.initDefaults(); + tiktokHelper.initDefaults(); + sendTargetsHelper.initDefaults(); + peertubeHelper.initDefaults(); + lbryHelper.initDefaults(); + }) + }) + }); + }) } } ) youtubeHelper.pasteInvidiousCookies(); +youtubeHelper.pastePipedLocalStorage(); +youtubeHelper.pastePipedMaterialLocalStorage(); translateHelper.pasteSimplyTranslateCookies(); +translateHelper.pasteLingvaLocalStorage(); twitterHelper.pasteNitterCookies(); wikipediaHelper.pasteWikilessCookies(); searchHelper.pasteSearxCookies(); diff --git a/src/pages/background/reset_warning.html b/src/pages/background/reset_warning.html index a3feee72..d2d493e0 100644 --- a/src/pages/background/reset_warning.html +++ b/src/pages/background/reset_warning.html @@ -47,7 +47,20 @@ previous version.</p> <p>Sorry for the inconvenience, but we're going in a fast development process and can't support nor convert older settings. It will reach a stable plateau though.</p> + + + <a id="export-settings" class="button button-inline"> + <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" + fill="currentColor"> + <path + d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"> + </path> + </svg> + + <x data-localise="__MSG_exportSettings__">Export Settings</x> + </a> </div> </body> +<script src="reset_warning.js"></script> </html> \ No newline at end of file diff --git a/src/pages/background/reset_warning.js b/src/pages/background/reset_warning.js new file mode 100644 index 00000000..9c9e9800 --- /dev/null +++ b/src/pages/background/reset_warning.js @@ -0,0 +1,11 @@ +let params = new URLSearchParams(location.search); + +const resultString = JSON.stringify( + JSON.parse(decodeURIComponent(params.get('data'))), + null, + ' ' +); + +let exportSettingsElement = document.getElementById("export-settings"); +exportSettingsElement.href = 'data:application/json;base64,' + btoa(resultString); +exportSettingsElement.download = 'libredirect-settings.json'; diff --git a/src/pages/options/index.js b/src/pages/options/index.js index 39f9c8f3..b6fcf6b8 100644 --- a/src/pages/options/index.js +++ b/src/pages/options/index.js @@ -1,3 +1,12 @@ +import youtubeHelper from "../../assets/javascripts/youtube/youtube.js"; +import twitterHelper from "../../assets/javascripts/twitter.js"; +import redditHelper from "../../assets/javascripts/reddit.js"; +import searchHelper from "../../assets/javascripts/search.js"; +import translateHelper from "../../assets/javascripts/translate/translate.js"; +import wikipediaHelper from "../../assets/javascripts/wikipedia.js"; +import tiktokHelper from "../../assets/javascripts/tiktok.js"; + + for (const a of document.getElementById('links').getElementsByTagName('a')) { a.addEventListener('click', e => { const path = a.getAttribute('href').replace('#', ''); diff --git a/src/pages/options/widgets/general.js b/src/pages/options/widgets/general.js index f2ed341a..f46c4011 100644 --- a/src/pages/options/widgets/general.js +++ b/src/pages/options/widgets/general.js @@ -63,30 +63,36 @@ importSettingsElement.addEventListener("change", if ( "theme" in data && "disableImgur" in data && - "cloudflareBlackList" in data && "imgurRedirects" in data ) { - await browser.storage.local.clear(); - await browser.storage.local.set({ ...data }) - await youtubeHelper.pasteInvidiousCookies(); - await youtubeHelper.pastePipedLocalStorage(); - await youtubeHelper.pastePipedMaterialLocalStorage(); + browser.storage.local.clear( + () => { + browser.storage.local.set({ ...data }, + async () => { + await youtubeHelper.pasteInvidiousCookies(); + await youtubeHelper.pastePipedLocalStorage(); + await youtubeHelper.pastePipedMaterialLocalStorage(); + + await translateHelper.pasteSimplyTranslateCookies(); + await translateHelper.pasteLingvaLocalStorage(); + + await twitterHelper.pasteNitterCookies(); - await translateHelper.pasteSimplyTranslateCookies(); - await translateHelper.pasteLingvaLocalStorage(); + await wikipediaHelper.pasteWikilessCookies(); - await twitterHelper.pasteNitterCookies(); + await searchHelper.pasteSearxCookies(); + await searchHelper.pasteSearxngCookies(); - await wikipediaHelper.pasteWikilessCookies(); + await redditHelper.pasteLibredditCookies(); + await redditHelper.pasteTedditCookies(); - await searchHelper.pasteSearxCookies(); - await searchHelper.pasteSearxngCookies(); + await tiktokHelper.pasteProxiTokCookies(); + + location.reload(); + }) - await redditHelper.pasteLibredditCookies(); - await redditHelper.pasteTedditCookies(); + }); - await tiktokHelper.pasteProxiTokCookies(); - location.reload(); } else importError() } @@ -103,28 +109,35 @@ const resetSettings = document.getElementById("reset-settings"); resetSettings.addEventListener("click", async () => { resetSettings.innerHTML = '...' - await browser.storage.local.clear(); - fetch('/instances/blacklist.json').then(response => response.text()).then(async data => { - await browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare }) - await browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate }) - await generalHelper.initDefaults(); - await youtubeHelper.initDefaults(); - await youtubeMusicHelper.initDefaults(); - await twitterHelper.initDefaults(); - await instagramHelper.initDefaults(); - await mapsHelper.initDefaults(); - await searchHelper.initDefaults(); - await translateHelper.initDefaults(); - await mediumHelper.initDefaults(); - await redditHelper.initDefaults(); - await wikipediaHelper.initDefaults(); - await imgurHelper.initDefaults(); - await tiktokHelper.initDefaults(); - await sendTargetsHelper.initDefaults(); - await peertubeHelper.initDefaults(); - await lbryHelper.initDefaults(); - location.reload(); - }) + browser.storage.local.clear( + () => { + fetch('/instances/blacklist.json').then(response => response.text()).then(async data => { + browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare }, + () => { + browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate }, + async () => { + await generalHelper.initDefaults(); + await youtubeHelper.initDefaults(); + await youtubeMusicHelper.initDefaults(); + await twitterHelper.initDefaults(); + await instagramHelper.initDefaults(); + await mapsHelper.initDefaults(); + await searchHelper.initDefaults(); + await translateHelper.initDefaults(); + await mediumHelper.initDefaults(); + await redditHelper.initDefaults(); + await wikipediaHelper.initDefaults(); + await imgurHelper.initDefaults(); + await tiktokHelper.initDefaults(); + await sendTargetsHelper.initDefaults(); + await peertubeHelper.initDefaults(); + await lbryHelper.initDefaults(); + location.reload(); + }) + }) + }) + }); + } ); diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index d4459917..17eeb2ca 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -34,7 +34,6 @@ utils.copyRaw(true).then(r => { document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage()); - let disableTwitterElement = document.getElementById("disable-nitter"); let disableYoutubeElement = document.getElementById("disable-youtube"); let disableYoutubeMusicElement = document.getElementById("disable-youtubeMusic"); |