From 619f675114883488897ede480654a99dde9ab159 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Wed, 9 Mar 2022 21:05:31 +0300 Subject: Fixed alwaysUsePreferred bug #96. Added way to customize Popup. Added oldReddit to targets --- src/assets/javascripts/helpers/common.js | 2 +- src/assets/javascripts/helpers/general.js | 46 +++++++++++++++++++++++ src/assets/javascripts/helpers/reddit.js | 11 ++---- src/assets/javascripts/helpers/twitter.js | 2 +- src/assets/javascripts/helpers/youtube/youtube.js | 3 +- src/pages/background/background.js | 1 - src/pages/options/general/general.html | 24 +++++++++++- src/pages/options/general/general.js | 21 ++++++++++- src/pages/popup/popup.html | 28 +++++++------- src/pages/popup/popup.js | 15 ++++++++ src/pages/popup/style.css | 4 ++ 11 files changed, 127 insertions(+), 30 deletions(-) diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js index 34539e69..f51bab36 100644 --- a/src/assets/javascripts/helpers/common.js +++ b/src/assets/javascripts/helpers/common.js @@ -121,7 +121,7 @@ function processDefaultCustomInstances( ].join('\n
\n'); calcNameCheckBoxes(); - document.getElementById(`${name}-${protocol}-toogle-all`).addEventListener("change", (event) => { + document.getElementById(`${name}-${protocol}-toogle-all`).addEventListener("change", event => { if (event.target.checked) nameDefaultRedirects = [...nameHelper.getRedirects()[name][protocol]]; else diff --git a/src/assets/javascripts/helpers/general.js b/src/assets/javascripts/helpers/general.js index fd14f534..66edf93e 100644 --- a/src/assets/javascripts/helpers/general.js +++ b/src/assets/javascripts/helpers/general.js @@ -55,6 +55,7 @@ async function init() { "alwaysUsePreferred", "theme", "applyThemeToSites", + "popupFrontends" ], r => { // r = result if (r.exceptions) exceptions = r.exceptions; @@ -63,12 +64,52 @@ async function init() { theme = r.theme ?? "DEFAULT" applyThemeToSites = r.applyThemeToSites ?? false; + popupFrontends = r.popupFrontends ?? [ + "youtube", + "youtubeMusic", + "twitter", + "instagram", + "tikTok", + "imgur", + "reddit", + "search", + "translate", + "maps", + "wikipedia", + "medium", + ]; resolve(); } ) ) } + +let popupFrontends; +const getPopupFrontends = () => popupFrontends; +function setPopupFrontends(val) { + popupFrontends = val; + browser.storage.local.set({ popupFrontends }) + console.log("popupFrontends: ", val) +} + +let allPopupFrontends = [ + "youtube", + "youtubeMusic", + "twitter", + "instagram", + "tikTok", + "imgur", + "reddit", + "pixiv", + "search", + "translate", + "maps", + "wikipedia", + "medium", +]; + + export default { getExceptions, setExceptions, @@ -79,6 +120,11 @@ export default { getApplyThemeToSites, setApplyThemeToSites, + getPopupFrontends, + setPopupFrontends, + + allPopupFrontends, + getTheme, setTheme, diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index db8820eb..926d79e2 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -3,13 +3,8 @@ window.browser = window.browser || window.chrome; import commonHelper from './common.js' const targets = [ - /^https?:\/\/reddit\.com/, - /^https?:\/\/www\.reddit\.com/, - /^https?:\/\/np\.reddit\.com/, - /^https?:\/\/new\.reddit\.com/, - /^https?:\/\/amp\.reddit\.com/, - /^https?:\/\/i\.redd\.it/, - /^https?:\/\/redd\.it/, + /^https?:\/\/(www\.|old\.|np\.|new\.|amp\.|)reddit\.com/, + /^https?:\/\/(i\.|)redd\.it/, ]; let redirects = { // modern UI @@ -397,7 +392,7 @@ async function init() { bypassWatchOnReddit = result.bypassWatchOnReddit ?? true; - alwaysUsePreferred = result.alwaysUsePreferred ?? true; + alwaysUsePreferred = result.alwaysUsePreferred ?? false; redirects.teddit = dataJson.teddit; if (result.redditRedirects) redirects = result.redditRedirects; diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 68266328..caf6541d 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -245,7 +245,7 @@ async function init() { bypassWatchOnTwitter = r.bypassWatchOnTwitter ?? true; - alwaysUsePreferred = r.alwaysUsePreferred ?? true; + alwaysUsePreferred = r.alwaysUsePreferred ?? false; theme = r.theme ?? 'DEFAULT'; applyThemeToSites = r.applyThemeToSites ?? false; diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 919cec17..50a16024 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -618,7 +618,6 @@ function addUrlParams(url) { else return; } - function initPipedLocalStorage(tabId) { browser.tabs.executeScript( tabId, @@ -736,7 +735,7 @@ async function init() { persistInvidiousPrefs = r.persistInvidiousPrefs ?? false; - alwaysUsePreferred = r.alwaysUsePreferred ?? true; + alwaysUsePreferred = r.alwaysUsePreferred ?? false; bypassWatchOnYoutube = r.bypassWatchOnYoutube ?? true; diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 0d47b3d4..cf893143 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -32,7 +32,6 @@ async function wholeInit() { tiktokHelper.init() pixivHelper.init() generalHelper.init() - } wholeInit(); diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html index 19e8e946..fcee2089 100644 --- a/src/pages/options/general/general.html +++ b/src/pages/options/general/general.html @@ -89,7 +89,6 @@ -

Theme

@@ -176,6 +175,29 @@
+
+ +
+

Customize Popup

+
+ + +
+
diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js index 4f10ab30..f65fa290 100644 --- a/src/pages/options/general/general.js +++ b/src/pages/options/general/general.js @@ -76,12 +76,27 @@ let nameCustomInstanceInput = document.getElementById("exceptions-custom-instanc let instanceTypeElement = document.getElementById("exceptions-custom-instance-type"); let instanceType = "url" +let popupFrontends; +for (const frontend of generalHelper.allPopupFrontends) + document.getElementById(frontend).addEventListener("change", + event => { + if (event.target.checked && !popupFrontends.includes(frontend)) + popupFrontends.push(frontend) + else if (popupFrontends.includes(frontend)) { + var index = popupFrontends.indexOf(frontend); + if (index !== -1) popupFrontends.splice(index, 1); + } + generalHelper.setPopupFrontends(popupFrontends); + } + ) + generalHelper.init().then(() => { alwaysUsePreferredElement.checked = generalHelper.getAlwaysUsePreferred(); + console.log("alwaysUsePreferredElement.checked", alwaysUsePreferredElement.checked); themeElement.value = generalHelper.getTheme(); applyThemeToSitesElement.checked = generalHelper.getApplyThemeToSites(); instanceTypeElement.addEventListener("change", - (event) => { + event => { instanceType = event.target.options[instanceTypeElement.selectedIndex].value if (instanceType == 'url') { nameCustomInstanceInput.setAttribute("type", "url"); @@ -149,4 +164,8 @@ generalHelper.init().then(() => { } calcExceptionsCustomInstances(); }) + + popupFrontends = generalHelper.getPopupFrontends(); + for (const frontend of generalHelper.allPopupFrontends) + document.getElementById(frontend).checked = popupFrontends.includes(frontend); }) \ No newline at end of file diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html index d62420f2..a58a01ee 100644 --- a/src/pages/popup/popup.html +++ b/src/pages/popup/popup.html @@ -9,7 +9,7 @@ -
+

YouTube

@@ -17,7 +17,7 @@
-
+

YT Music

@@ -25,7 +25,7 @@
-
+

Twitter

@@ -33,7 +33,7 @@
-
+
@@ -42,7 +42,7 @@
-
+
@@ -51,7 +51,7 @@
-
+

Imgur

@@ -59,7 +59,7 @@
-
+
@@ -68,7 +68,7 @@
-
+
@@ -77,7 +77,7 @@
-
+

Wikipedia

@@ -85,7 +85,7 @@
-
+
@@ -98,8 +98,7 @@
-
- + -
+
@@ -124,7 +122,7 @@
-
+
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index c4e61df8..5d7a690d 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -15,6 +15,7 @@ import mediumHelper from "../../assets/javascripts/helpers/medium.js"; import imgurHelper from "../../assets/javascripts/helpers/imgur.js"; import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js"; import pixivHelper from "../../assets/javascripts/helpers/pixiv.js"; +import generalHelper from "../../assets/javascripts/helpers/general.js"; let disableTwitterElement = document.getElementById("disable-nitter"); let disableYoutubeElement = document.getElementById("disable-youtube"); @@ -157,3 +158,17 @@ function changeInstance() { let changeInstanceElement = document.getElementById("change-instance") changeInstanceElement.disabled = !changeInstance(); changeInstanceElement.addEventListener("click", changeInstance); + + +let popupFrontends; +generalHelper.init().then(() => { + popupFrontends = generalHelper.getPopupFrontends(); + + for (const frontend of generalHelper.allPopupFrontends) { + console.log(frontend) + if (!popupFrontends.includes(frontend)) + document.getElementById(frontend).classList.add("hide") + else + document.getElementById(frontend).classList.remove("hide") + } +}); \ No newline at end of file diff --git a/src/pages/popup/style.css b/src/pages/popup/style.css index 477035bb..a2fc1256 100644 --- a/src/pages/popup/style.css +++ b/src/pages/popup/style.css @@ -1,4 +1,8 @@ body { width: 240px; min-height: auto; +} + +.hide { + display: none !important; } \ No newline at end of file -- cgit 1.4.1