aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages
diff options
context:
space:
mode:
Diffstat (limited to '')
-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
-rw-r--r--src/pages/options/index.js9
-rw-r--r--src/pages/options/widgets/general.js89
-rw-r--r--src/pages/popup/popup.js1
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>
+ &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';
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");