about summary refs log tree commit diff stats
path: root/src/pages/background
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-06-05 15:54:13 +0300
committerManeraKai <manerakai@protonmail.com>2022-06-05 15:54:13 +0300
commit78dcb3671064eec9ddbe770688fcc31dd30a8091 (patch)
tree9f7da74fdab3af34b7cb64000cd504f25b3cc3a4 /src/pages/background
parentClarifying authenticate instances #311 (diff)
downloadlibredirect-78dcb3671064eec9ddbe770688fcc31dd30a8091.zip
Fixing bugs. Preparing for release
Diffstat (limited to 'src/pages/background')
-rw-r--r--src/pages/background/background.js63
-rw-r--r--src/pages/background/reset_warning.html13
-rw-r--r--src/pages/background/reset_warning.js11
3 files changed, 66 insertions, 21 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>
+                &nbsp;
+                <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';