about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-04-27 19:51:34 +0300
committerManeraKai <manerakai@protonmail.com>2022-04-27 19:51:34 +0300
commiteb1d01b0639665645167a2e35df9d2bc4ef72b8d (patch)
tree9844cab138885389a39d4b6f9ebc7322ec5bbd29 /src/assets/javascripts
parentImproving code structure. Added libreddit settings #192 (diff)
downloadlibredirect-eb1d01b0639665645167a2e35df9d2bc4ef72b8d.zip
Added proxiTok settings #197
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/helpers/reddit.js47
-rw-r--r--src/assets/javascripts/helpers/tiktok.js144
2 files changed, 116 insertions, 75 deletions
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 9cd7600b..35aec749 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -7,18 +7,15 @@ const targets = [
   /^https?:\/{2}(i\.|preview\.)redd\.it/,
 ];
 let redirects = {
-  // modern UI
   "libreddit": {
     "normal": [],
     "tor": []
   },
-  // old UI
   "teddit": {
     "normal": [],
     "tor": []
   },
   "desktop": "https://old.reddit.com", // desktop
-  "mobile": "https://i.reddit.com", // mobile
 };
 const getRedirects = () => redirects;
 const getCustomRedirects = function () {
@@ -186,10 +183,7 @@ function initLibredditCookies() {
   }
 }
 function initTedditCookies() {
-  let themeValue;
-  if (theme == 'light') themeValue = 'white';
-  if (theme == 'dark') themeValue = 'dark';
-  if (enableCustom && themeValue) {
+  if (enableCustom) {
     let checkedInstances = [
       ...tedditNormalRedirectsChecks,
       ...tedditNormalCustomRedirects,
@@ -200,26 +194,25 @@ function initTedditCookies() {
       browser.cookies.set({
         url: instanceUrl,
         name: "theme",
-        value: themeValue
+        value: theme == 'dark' ? 'dark' : 'white'
       })
   }
 }
 
 let alwaysUsePreferred;
 
-// https://libreddit.exonip.de/vid/1mq8d0ma3yk81/720.mp4
-// https://libreddit.exonip.de/img/4v3t1vgvrzk81.png
-
-// https://teddit.net/vids/1mq8d0ma3yk81.mp4
-// https://teddit.net/pics/w:null_4v3t1vgvrzk81.png
+function redirect(url, type, initiator) {
+  // https://libreddit.exonip.de/vid/1mq8d0ma3yk81/720.mp4
+  // https://libreddit.exonip.de/img/4v3t1vgvrzk81.png
 
+  // https://teddit.net/vids/1mq8d0ma3yk81.mp4
+  // https://teddit.net/pics/w:null_4v3t1vgvrzk81.png
 
-// redd.it/t5379n
-// https://v.redd.it/z08avb339n801/DASH_1_2_M
-// https://i.redd.it/bfkhs659tzk81.jpg
 
+  // redd.it/t5379n
+  // https://v.redd.it/z08avb339n801/DASH_1_2_M
+  // https://i.redd.it/bfkhs659tzk81.jpg
 
-function redirect(url, type, initiator) {
   if (disableReddit) return null;
 
   let protocolHost = commonHelper.protocolHost(url);
@@ -263,17 +256,15 @@ function redirect(url, type, initiator) {
   if (
     bypassWatchOnReddit &&
     initiator &&
-    (
-      [...redirects.libreddit.normal,
-      ...redirects.libreddit.tor,
-      ...libredditNormalCustomRedirects,
-      ...libredditTorCustomRedirects,
-      ...redirects.teddit.normal,
-      ...redirects.teddit.tor,
-      ...tedditNormalCustomRedirects,
-      ...tedditTorCustomRedirects,
-      ].includes(initiator.origin)
-    )
+    [...redirects.libreddit.normal,
+    ...redirects.libreddit.tor,
+    ...libredditNormalCustomRedirects,
+    ...libredditTorCustomRedirects,
+    ...redirects.teddit.normal,
+    ...redirects.teddit.tor,
+    ...tedditNormalCustomRedirects,
+    ...tedditTorCustomRedirects,
+    ].includes(initiator.origin)
   ) return 'BYPASSTAB';
 
   if (type !== "main_frame" || url.pathname.match(bypassPaths)) return null;
diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js
index fbadc2af..bd918495 100644
--- a/src/assets/javascripts/helpers/tiktok.js
+++ b/src/assets/javascripts/helpers/tiktok.js
@@ -81,24 +81,43 @@ function setDisable(val) {
 }
 
 let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-    protocol = val;
-    browser.storage.local.set({ tiktokProtocol: val })
-    console.log("tiktokProtocol: ", val)
-}
-
-function isTiktok(url, initiator) {
-    if (disable) return false;
-    if (initiator && ([...redirects.proxiTok.normal, ...proxiTokNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return false;
-    return targets.some(rx => rx.test(url.href));
+let enableCustom;
+
+let theme;
+let api_legacy;
+
+function initProxiTokCookies() {
+    console.log('initProxiTokCookies')
+    if (enableCustom) {
+        let checkedInstances = [
+            ...proxiTokNormalRedirectsChecks,
+            ...proxiTokNormalCustomRedirects,
+            ...proxiTokTorRedirectsChecks,
+            ...proxiTokTorCustomRedirects
+        ]
+
+        for (const instance of checkedInstances) {
+            browser.cookies.set({ url: instance, name: "theme", value: theme })
+            browser.cookies.set({ url: instance, name: "api-legacy", value: api_legacy ? 'on' : 'off' })
+        }
+    }
 }
 
-function redirect(url, type) {
-    // https://www.tiktok.com/@keysikaspol/video/7061265241887345946?for_redirection=@keysikaspol
-    // https://proxitok.pussthecat.org/video/7061265241887345946
+function redirect(url, type, initiator) {
+    if (disable) return;
+    if (initiator &&
+        (
+            [
+                ...redirects.proxiTok.normal,
+                ...proxiTokNormalCustomRedirects
+            ].includes(initiator.origin) ||
+            targets.includes(initiator.host)
+        )
+    ) return;
+    if (!targets.some(rx => rx.test(url.href))) return;
+    // https://www.tiktok.com/@keysikaspol/video/7061265241887345946
     // https://www.tiktok.com/@keysikaspol
-    // https://proxitok.herokuapp.com/video/7061265241887345946
+
 
     if (type != "main_frame") return null;
 
@@ -108,8 +127,6 @@ function redirect(url, type) {
     if (instancesList.length === 0) return null;
     let randomInstance = commonHelper.getRandomInstance(instancesList);
 
-    // let pathName = url.pathname.replace(/@.*\/(?=video)/, "");
-
     return `${randomInstance}${url.pathname}`;
 }
 
@@ -125,42 +142,76 @@ function reverse(url) {
     return `https://tiktok.com${url.pathname}${url.search}`;
 }
 
+async function initDefaults() {
+    return new Promise(async resolve => {
+        fetch('/instances/data.json').then(response => response.text()).then(async data => {
+            let dataJson = JSON.parse(data);
+            redirects.proxiTok = dataJson.proxiTok;
+            await browser.storage.local.set({
+                disableTiktok: false,
+                tiktokProtocol: "normal",
+
+                tiktokRedirects: {
+                    'proxiTok': redirects.proxiTok,
+                },
+
+                proxiTokNormalRedirectsChecks: [...redirects.proxiTok.normal],
+                proxiTokNormalCustomRedirects: [],
+
+                proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
+                proxiTokTorCustomRedirects: [],
+
+                enableTiktokCustomSettings: false,
+
+                proxiTokTheme: 'default',
+                proxiTokApiLegacy: 'off',
+
+            });
+            resolve();
+        });
+    })
+}
+
 async function init() {
     return new Promise(resolve => {
-        fetch('/instances/data.json').then(response => response.text()).then(data => {
-            let dataJson = JSON.parse(data);
-            browser.storage.local.get(
-                [
-                    "disableTiktok",
-                    "tiktokRedirects",
+        console.log('redirects', redirects)
+        browser.storage.local.get(
+            [
+                "disableTiktok",
+                "tiktokProtocol",
+                "tiktokRedirects",
 
-                    "proxiTokNormalRedirectsChecks",
-                    "proxiTokNormalCustomRedirects",
+                "proxiTokNormalRedirectsChecks",
+                "proxiTokNormalCustomRedirects",
 
-                    "proxiTokTorRedirectsChecks",
-                    "proxiTokTorCustomRedirects",
+                "proxiTokTorRedirectsChecks",
+                "proxiTokTorCustomRedirects",
 
-                    "tiktokProtocol"
-                ],
-                r => {
-                    redirects.proxiTok = dataJson.proxiTok;
-                    disable = r.disableTiktok ?? false;
+                "enableTiktokCustomSettings",
 
-                    protocol = r.tiktokProtocol ?? "normal";
+                "proxiTokTheme",
+                "proxiTokApiLegacy",
+            ],
+            r => {
+                disable = r.disableTiktok;
+                protocol = r.tiktokProtocol;
+                redirects = r.tiktokRedirects;
 
-                    if (r.tiktokRedirects) redirects = r.tiktokRedirects;
+                proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks;
+                proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects;
 
-                    proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks ?? [...redirects.proxiTok.normal];
-                    proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects ?? [];
+                proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks;
+                proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects;
 
-                    proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks ?? [...redirects.proxiTok.tor];
-                    proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects ?? [];
+                enableCustom = r.enableTiktokCustomSettings;
 
-                    resolve();
-                }
-            )
-        });
-    });
+                theme = r.proxiTokTheme;
+                api_legacy = r.proxiTokApiLegacy;
+
+                resolve();
+            }
+        )
+    })
 }
 
 export default {
@@ -174,9 +225,6 @@ export default {
 
     reverse,
 
-    getProtocol,
-    setProtocol,
-
     getProxiTokNormalRedirectsChecks,
     setProxiTokNormalRedirectsChecks,
     getProxiTokTorRedirectsChecks,
@@ -187,7 +235,9 @@ export default {
     getProxiTokNormalCustomRedirects,
     setProxiTokNormalCustomRedirects,
 
+    initProxiTokCookies,
+
     redirect,
-    isTiktok,
+    initDefaults,
     init,
 };