aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts/helpers
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-06 05:58:42 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-06 05:58:42 +0300
commit2876cb24b34e18470c297043c56e915aae2cea7c (patch)
tree6b3fbd29963e64451a40be22f74f1ddda21b1b3c /src/assets/javascripts/helpers
parentreadded default and custom instances. Needs some work (diff)
downloadlibredirect-2876cb24b34e18470c297043c56e915aae2cea7c.zip
Cleaning code
Diffstat (limited to 'src/assets/javascripts/helpers')
-rw-r--r--src/assets/javascripts/helpers/common.js65
-rw-r--r--src/assets/javascripts/helpers/instagram.js26
-rw-r--r--src/assets/javascripts/helpers/maps.js17
-rw-r--r--src/assets/javascripts/helpers/medium.js20
-rw-r--r--src/assets/javascripts/helpers/reddit.js15
-rw-r--r--src/assets/javascripts/helpers/search.js19
-rw-r--r--src/assets/javascripts/helpers/translate.js21
-rw-r--r--src/assets/javascripts/helpers/twitter.js23
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js16
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js19
10 files changed, 22 insertions, 219 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 373929f6..313808a9 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -10,11 +10,6 @@ import wikipediaHelper from "./wikipedia.js";
import mapsHelper from "./maps.js";
import medium from "./medium.js";
-
-function addHttps(instances) {
- return instances.map((item, i) => "https://" + item)
-}
-
function getRandomInstance(instances) {
return instances[~~(instances.length * Math.random())];
}
@@ -51,72 +46,12 @@ function updateInstances() {
return false;
}
-function debounce(func, wait, immediate) {
- let timeout;
- return () => {
- let context = this,
- args = arguments;
- let later = () => {
- timeout = null;
- if (!immediate) func.apply(context, args);
- };
- let callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- if (callNow) func.apply(context, args);
- };
-}
-
-function validURL(str) {
- var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
- '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
- '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
- '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
- '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
- '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
- return !!pattern.test(str);
-}
-
-function filterList(oldList) {
- oldList.filter((x) => x.trim() != "");
- let newList = [];
- oldList.forEach((c) => {
- if (!newList.includes(c.trim()))
- newList.push(c.trim());
- });
- newList = newList.filter(validURL)
- return newList;
-}
-
-function updateListElement(listElement, list) {
- while (listElement.firstChild)
- listElement.removeChild(listElement.firstChild);
- list.forEach(element => {
- let entry = document.createElement('li');
- entry.appendChild(document.createTextNode(element));
- listElement.appendChild(entry);
- });
-}
-
function isFirefox() {
return typeof InstallTrigger !== "undefined";
}
-function isException(url, initiator) {
- return (
- data.exceptions.some((regex) => regex.test(url.href)) ||
- (initiator && data.exceptions.some((regex) => regex.test(initiator.href)))
- );
-}
-
export default {
getRandomInstance,
updateInstances,
- addHttps,
- debounce,
- validURL,
- filterList,
- updateListElement,
isFirefox,
- isException,
};
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index 666b9f71..fac1f534 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -60,37 +60,23 @@ function setDisableInstagram(val) {
browser.storage.sync.set({ disableInstagram })
}
-let bibliogramInstance;
-const getBibliogramInstance = () => bibliogramInstance;
-function setBibliogramInstance(val) {
- bibliogramInstance = val;
- browser.storage.sync.set({ bibliogramInstance })
-};
-
function redirect(url, initiator, type) {
if (disableInstagram)
return null;
// Do not redirect Bibliogram view on Instagram links
- if (
- initiator &&
- (initiator.origin === bibliogramInstance || redirects.normal.includes(initiator.origin) || targets.includes(initiator.host))
- )
+ if (initiator && (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host)))
return null;
// Do not redirect /accounts, /embeds.js, or anything other than main_frame
if (type !== "main_frame" || url.pathname.match(bypassPaths))
- return null;
+ return 'CANCEL';
let link = commonHelper.getRandomInstance(redirects.normal);
- if (
- url.pathname === "/" ||
- instagramReservedPaths.includes(url.pathname.split("/")[1])
- )
+ if (url.pathname === "/" || instagramReservedPaths.includes(url.pathname.split("/")[1]))
return `${link}${url.pathname}${url.search}`;
else
- // Likely a user profile, redirect to '/u/...'
- return `${link}/u${url.pathname}${url.search}`;
+ return `${link}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...'
}
function isInstagram(url) {
@@ -100,11 +86,9 @@ function isInstagram(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableInstagram",
- "bibliogramInstance",
"instagramRedirects"
])
disableInstagram = result.disableInstagram ?? false;
- bibliogramInstance = result.bibliogramInstance;
if (result.instagramRedirects)
redirects = result.instagramRedirects
}
@@ -114,8 +98,6 @@ export default {
setRedirects,
getDisableInstagram,
setDisableInstagram,
- getBibliogramInstance,
- setBibliogramInstance,
isInstagram,
redirect,
init,
diff --git a/src/assets/javascripts/helpers/maps.js b/src/assets/javascripts/helpers/maps.js
index 40f070c2..cee15557 100644
--- a/src/assets/javascripts/helpers/maps.js
+++ b/src/assets/javascripts/helpers/maps.js
@@ -54,13 +54,6 @@ function setDisableMaps(val) {
browser.storage.sync.set({ disableMaps })
}
-let osmInstance;
-const getOsmInstance = () => osmInstance;
-function setOsmInstance(val) {
- osmInstance = val;
- browser.storage.sync.set({ osmInstance })
-}
-
function redirect(url, initiator) {
if (disableMaps) return null;
@@ -82,8 +75,7 @@ function redirect(url, initiator) {
params = "&zoom=17";
// Set map layer
- params = `${params}&layers=${layers[url.searchParams.get("layer")] || layers["none"]
- }`;
+ params = `${params}&layers=${layers[url.searchParams.get("layer")] || layers["none"]}`;
// Handle Google Maps Embed API
if (url.pathname.split("/").includes("embed")) {
let query = "";
@@ -93,8 +85,7 @@ function redirect(url, initiator) {
try {
query = url.searchParams.get("pb").split(/!2s(.*?)!/)[1];
} catch (error) {
- console.error(error);
- // Unable to find map marker in URL.
+ console.error(error); // Unable to find map marker in URL.
}
}
let marker, bbox;
@@ -145,18 +136,14 @@ function isMaps(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableMaps",
- "osmInstance",
])
disableMaps = result.disableMaps ?? false;
- osmInstance = result.osmInstance;
}
export default {
addressToLatLng,
getDisableMaps,
setDisableMaps,
- getOsmInstance,
- setOsmInstance,
redirect,
isMaps,
init,
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index ce91e99c..16a6eac5 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -39,12 +39,6 @@ function setDisableMedium(val) {
}
-let scribeInstance;
-const getScribeInstance = () => scribeInstance;
-function setScribeInstance(val) {
- scribeInstance = val;
- browser.storage.sync.set({ scribeInstance })
-};
function redirect(url, initiator) {
if (disableMedium) return null;
@@ -52,13 +46,8 @@ function redirect(url, initiator) {
if (url.pathname == "/") return null;
if (
- commonHelper.isFirefox() &&
- initiator &&
- (
- initiator.origin === scribeInstance ||
- redirects.normal.includes(initiator.origin) ||
- targets.includes(initiator.host)
- )
+ commonHelper.isFirefox() && initiator &&
+ (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host))
) {
browser.storage.sync.set({ redirectBypassFlag: true });
return null;
@@ -73,11 +62,9 @@ function isMedium(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableMedium",
- "scribeInstance",
"mediumRedirects"
])
disableMedium = result.disableMedium ?? false;
- scribeInstance = result.scribeInstance;
if (result.mediumRedirects)
redirects = result.mediumRedirects;
}
@@ -91,9 +78,6 @@ export default {
getDisableMedium,
setDisableMedium,
- getScribeInstance,
- setScribeInstance,
-
redirect,
isMedium,
init,
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 880d1576..ba3455d0 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -79,12 +79,6 @@ function setDisableReddit(val) {
disableReddit = val;
browser.storage.sync.set({ disableReddit })
}
-let redditInstance;
-const getRedditInstance = () => redditInstance;
-function setRedditInstance(val) {
- redditInstance = val;
- browser.storage.sync.set({ redditInstance })
-};
let redditFrontend;
const getRedditFrontend = () => redditFrontend;
@@ -99,8 +93,8 @@ function redirect(url, initiator, type) {
return null;
// Do not redirect when already on the selected view
- if ((initiator && initiator.origin === redditInstance) || url.origin === redditInstance)
- return null;
+ // if ((initiator && initiator.origin === redditInstance) || url.origin === redditInstance)
+ // return null;
// Do not redirect exclusions nor anything other than main_frame
@@ -140,12 +134,10 @@ function isReddit(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableReddit",
- "redditInstance",
"redditFrontend",
"redditRedirects"
])
disableReddit = result.disableReddit ?? false;
- redditInstance = result.redditInstance;
redditFrontend = result.redditFrontend ?? 'libreddit';
if (result.redditRedirects)
redirects = result.redditRedirects;
@@ -160,9 +152,6 @@ export default {
getDisableReddit,
setDisableReddit,
- getRedditInstance,
- setRedditInstance,
-
getRedditFrontend,
setRedditFrontend,
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 84b63f9a..1130aa3e 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -6,7 +6,7 @@ const targets = [
/https?:\/\/(((www|maps)\.)?(google\.).*(\/search)|search\.(google\.).*)/
];
let redirects = {
- "searx": {
+ "searx": {
"normal": [
"https://a.searx.space",
"https://anon.sx",
@@ -137,7 +137,7 @@ let redirects = {
"http://mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq.b32.i2p"
]
},
- "whoogle": {
+ "whoogle": {
"normal": [
"https://s.alefvanoon.xyz",
"https://search.albony.xyz",
@@ -164,8 +164,6 @@ function setWhoogleRedirects(val) {
console.log("whoogleRedirects:", val)
}
-
-
let disableSearch;
const getDisableSearch = () => disableSearch;
function setDisableSearch(val) {
@@ -174,13 +172,6 @@ function setDisableSearch(val) {
console.log("disableSearch: ", disableSearch)
}
-let searchInstance;
-const getSearchInstance = () => searchInstance;
-function setSearchInstance(val) {
- searchInstance = val;
- browser.storage.sync.set({ searchInstance })
-};
-
let searchFrontend;
const getSearchFrontend = () => searchFrontend;
function setSearchFrontend(val) {
@@ -208,7 +199,6 @@ function redirect(url, initiator) {
url.search.slice(1).split("&").forEach(function (input) {
if (input.startsWith("q=")) searchQuery = input;
});
- console.log("Will return");
return `${instance}${path}?${searchQuery}`;
}
@@ -219,12 +209,10 @@ function isSearch(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableSearch",
- "searchInstance",
"searchFrontend",
"searchRedirects",
])
disableSearch = result.disableSearch ?? false;
- searchInstance = result.searchInstance;
searchFrontend = result.searchFrontend ?? 'searx';
if (result.searchRedirects)
redirects = result.searchRedirects;
@@ -241,9 +229,6 @@ export default {
getDisableSearch,
setDisableSearch,
- getSearchInstance,
- setSearchInstance,
-
getSearchFrontend,
setSearchFrontend,
diff --git a/src/assets/javascripts/helpers/translate.js b/src/assets/javascripts/helpers/translate.js
index 198603e9..c0f95994 100644
--- a/src/assets/javascripts/helpers/translate.js
+++ b/src/assets/javascripts/helpers/translate.js
@@ -35,6 +35,7 @@ let redirects = {
}
};
+
const getRedirects = () => redirects;
function setSimplyTranslateRedirects(val) {
@@ -57,13 +58,6 @@ function setDisableTranslate(val) {
console.log("disableTranslate: ", disableTranslate)
}
-let simplyTranslateInstance;
-const getSimplyTranslateInstance = () => simplyTranslateInstance;
-function setSimplyTranslateInstance(val) {
- simplyTranslateInstance = val;
- browser.storage.sync.set({ simplyTranslateInstance })
-};
-
let translateFrontend;
const getFrontend = () => translateFrontend;
function setFrontend(val) {
@@ -108,12 +102,10 @@ function isTranslate(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableTranslate",
- "simplyTranslateInstance",
"translateFrontend",
"translateRedirects"
]);
disableTranslate = result.disableTranslate ?? false;
- simplyTranslateInstance = result.simplyTranslateInstance;
translateFrontend = result.translateFrontend ?? "simplyTransalte";
if (result.translateRedirects)
redirects = result.translateRedirects
@@ -123,18 +115,15 @@ export default {
getRedirects,
setSimplyTranslateRedirects,
setLingvaRedirects,
-
+
isTranslate,
-
+
getDisableTranslate,
setDisableTranslate,
-
- getSimplyTranslateInstance,
- setSimplyTranslateInstance,
-
+
getFrontend,
setFrontend,
-
+
redirect,
init,
};
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 24d2725e..d97505cc 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -12,11 +12,7 @@ const targets = [
"pbs.twimg.com",
"video.twimg.com",
];
-/*
- Please remember to also update the
- src/assets/javascripts/remove-twitter-sw.js file
- (const nitterInstances) when updating this list:
- */
+
let redirects = {
"normal": [
"https://nitter.net",
@@ -93,12 +89,6 @@ function setDisableTwitter(val) {
browser.storage.sync.set({ disableTwitter })
}
-let nitterInstance;
-const getNitterInstance = () => nitterInstance;
-function setNitterInstance(val) {
- nitterInstance = val;
- browser.storage.sync.set({ nitterInstance })
-}
function redirect(url, initiator) {
if (disableTwitter)
@@ -110,11 +100,7 @@ function redirect(url, initiator) {
if (
commonHelper.isFirefox() &&
initiator &&
- (
- initiator.origin === nitterInstance ||
- redirects.normal.includes(initiator.origin) ||
- targets.includes(initiator.host)
- )
+ (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host))
) {
browser.storage.sync.set({ redirectBypassFlag: true });
return null;
@@ -138,11 +124,9 @@ function isTwitter(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableTwitter",
- "nitterInstance",
"twitterRedirects"
]);
disableTwitter = result.disableTwitter ?? false;
- nitterInstance = result.nitterInstance;
if (result.twitterRedirects)
redirects = result.twitterRedirects;
}
@@ -154,9 +138,6 @@ export default {
getDisableTwitter,
setDisableTwitter,
- getNitterInstance,
- setNitterInstance,
-
redirect,
isTwitter,
init,
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index e730c8b8..111eee2c 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -27,13 +27,6 @@ function setDisableWikipedia(val) {
browser.storage.sync.set({ disableWikipedia })
}
-let wikipediaInstance;
-const getWikipediaInstance = () => wikipediaInstance;
-function setWikipediaInstance(val) {
- wikipediaInstance = val;
- browser.storage.sync.set({ wikipediaInstance })
-};
-
function redirect(url, initiator) {
if (disableWikipedia) return null;
@@ -46,7 +39,7 @@ function redirect(url, initiator) {
GETArguments.push([args[0], args[1]]);
}
}
- let instance = wikipediaInstance ?? commonHelper.getRandomInstance(redirects.normal)
+ let instance = commonHelper.getRandomInstance(redirects.normal)
let link = `${instance}${url.pathname}`;
let urlSplit = url.host.split(".");
if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") {
@@ -55,7 +48,7 @@ function redirect(url, initiator) {
else GETArguments.push(["lang", urlSplit[0]]);
if (urlSplit[1] == "m")
GETArguments.push(["mobileaction", "toggle_view_mobile"]);
- //wikiless doesn't have mobile view support yet
+ // wikiless doesn't have mobile view support yet
}
for (let i = 0; i < GETArguments.length; i++)
link += (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1];
@@ -76,11 +69,9 @@ function isWikipedia(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableWikipedia",
- "wikipediaInstance",
"wikipediaRedirects"
]);
disableWikipedia = result.disableWikipedia ?? false;
- wikipediaInstance = result.wikipediaInstance;
if (result.wikipediaRedirects)
redirects = result.wikipediaRedirects;
}
@@ -92,9 +83,6 @@ export default {
setDisableWikipedia,
getDisableWikipedia,
- setWikipediaInstance,
- getWikipediaInstance,
-
redirect,
isWikipedia,
init,
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 0ce6b097..b6588808 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -91,14 +91,6 @@ function setDisableYoutube(val) {
console.log("disableYoutube: ", disableYoutube)
}
-let invidiousInstance;
-const getInvidiousInstance = () => invidiousInstance;
-function setInvidiousInstance(val) {
- invidiousInstance = val;
- browser.storage.sync.set({ invidiousInstance })
- console.log("invidiousInstance: ", invidiousInstance)
-}
-
let invidiousAlwaysProxy;
function setInvidiousAlwaysProxy(val) {
invidiousAlwaysProxy = val;
@@ -208,7 +200,6 @@ async function init() {
"invidiousTheme",
"persistInvidiousPrefs",
"disableYoutube",
- "invidiousInstance",
"invidiousOnlyEmbeddedVideo",
"invidiousVolume",
"invidiousPlayerStyle",
@@ -219,7 +210,7 @@ async function init() {
"invidiousRedirectsChecks",
"invidiousCustomRedirects",
]);
- if (result.youtubeRedirects) redirects = result.youtubeRedirects
+ if (result.youtubeRedirects) redirects = result.youtubeRedirects;
if (result.invidiousRedirectsChecks) invidiousRedirectsChecks = result.invidiousRedirectsChecks;
@@ -228,8 +219,6 @@ async function init() {
frontend = result.youtubeFrontend ?? 'piped';
disableYoutube = result.disableYoutube ?? false;
- invidiousInstance = result.invidiousInstance;
-
invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT';
invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo ?? false;
invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT';
@@ -240,8 +229,6 @@ async function init() {
invidiousAutoplay = result.invidiousAutoplay ?? 'DEFAULT';
persistInvidiousPrefs = result.persistInvidiousPrefs ?? false;
-
-
}
function invidiousInitCookies(tabId) {
@@ -259,7 +246,6 @@ function redirect(url, initiator, type) {
if (
initiator &&
(
- initiator.origin === invidiousInstance ||
redirects.invidious.normal.includes(initiator.origin) ||
redirects.piped.normal.includes(initiator.origin) ||
targets.includes(initiator.host)
@@ -326,9 +312,6 @@ export default {
getDisableYoutube,
setDisableYoutube,
- setInvidiousInstance,
- getInvidiousInstance,
-
setInvidiousAlwaysProxy,
getInvidiousAlwaysProxy,