aboutsummaryrefslogtreecommitdiffstats
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.js142
2 files changed, 115 insertions, 74 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)
-}
+let enableCustom;
+
+let theme;
+let api_legacy;
+
+function initProxiTokCookies() {
+ console.log('initProxiTokCookies')
+ if (enableCustom) {
+ let checkedInstances = [
+ ...proxiTokNormalRedirectsChecks,
+ ...proxiTokNormalCustomRedirects,
+ ...proxiTokTorRedirectsChecks,
+ ...proxiTokTorCustomRedirects
+ ]
-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));
+ 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,
};