Added chrome support #18

This commit is contained in:
ManeraKai
2022-02-12 22:28:36 +03:00
parent 531e7c5fb4
commit f2a3e2c608
18 changed files with 265 additions and 196 deletions

View File

@@ -1,3 +1,4 @@
window.browser = window.browser || window.chrome;
import twitterHelper from "./twitter.js";
import youtubeHelper from "./youtube/youtube.js";
import instagramHelper from "./instagram.js";
@@ -9,6 +10,7 @@ import wikipediaHelper from "./wikipedia.js";
import mapsHelper from "./maps.js";
import medium from "./medium.js";
function getRandomInstance(instances) {
return instances[~~(instances.length * Math.random())];
}

View File

@@ -1,4 +1,6 @@
"use strict";
window.browser = window.browser || window.chrome;
let exceptions = {
"url": [],
@@ -12,8 +14,12 @@ function setExceptions(val) {
}
async function init() {
let result = await browser.storage.sync.get("exceptions");
if (result.exceptions) exceptions = result.exceptions;
return new Promise((resolve) => {
browser.storage.sync.get("exceptions", (result) => {
if (result.exceptions) exceptions = result.exceptions;
resolve();
});
})
}
function isException(url) {

View File

@@ -1,3 +1,5 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = [
@@ -93,18 +95,26 @@ function isImgur(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableImgur",
"imgurRedirects",
"rimgoRedirectsChecks",
"rimgoCustomRedirects",
])
disableImgur = result.disableImgur ?? false;
if (result.imgurRedirects)
redirects = result.imgurRedirects;
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableImgur",
"imgurRedirects",
"rimgoRedirectsChecks",
"rimgoCustomRedirects",
],
(result) => {
disableImgur = result.disableImgur ?? false;
if (result.imgurRedirects)
redirects = result.imgurRedirects;
rimgoRedirectsChecks = result.rimgoRedirectsChecks ?? [...redirects.rimgo.normal];
rimgoCustomRedirects = result.rimgoCustomRedirects ?? [];
rimgoRedirectsChecks = result.rimgoRedirectsChecks ?? [...redirects.rimgo.normal];
rimgoCustomRedirects = result.rimgoCustomRedirects ?? [];
resolve();
}
)
});
}
export default {

View File

@@ -1,3 +1,4 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = [
@@ -118,19 +119,28 @@ function isInstagram(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableInstagram",
"instagramRedirects",
"bibliogramRedirectsChecks",
"bibliogramCustomRedirects",
])
disableInstagram = result.disableInstagram ?? false;
if (result.instagramRedirects)
redirects = result.instagramRedirects
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableInstagram",
"instagramRedirects",
"bibliogramRedirectsChecks",
"bibliogramCustomRedirects",
],
(result) => {
disableInstagram = result.disableInstagram ?? false;
if (result.instagramRedirects) redirects = result.instagramRedirects
bibliogramRedirectsChecks = result.bibliogramRedirectsChecks ?? [...redirects.bibliogram.normal];
bibliogramCustomRedirects = result.bibliogramCustomRedirects ?? [];
resolve();
}
)
})
bibliogramRedirectsChecks = result.bibliogramRedirectsChecks ?? [...redirects.bibliogram.normal];
bibliogramCustomRedirects = result.bibliogramCustomRedirects ?? [];
}
export default {

View File

@@ -1,3 +1,4 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
@@ -134,10 +135,15 @@ function isMaps(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableMaps",
])
disableMaps = result.disableMaps ?? false;
return new Promise((resolve) => {
browser.storage.sync.get(
"disableMaps",
(result) => {
disableMaps = result.disableMaps ?? false
resolve();
}
);
});
}
export default {

View File

@@ -1,3 +1,4 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
@@ -100,18 +101,26 @@ function isMedium(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableMedium",
"mediumRedirects",
"scribeRedirectsChecks",
"scribeCustomRedirects",
])
disableMedium = result.disableMedium ?? false;
if (result.mediumRedirects)
redirects = result.mediumRedirects;
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableMedium",
"mediumRedirects",
"scribeRedirectsChecks",
"scribeCustomRedirects",
],
(result) => {
disableMedium = result.disableMedium ?? false;
if (result.mediumRedirects)
redirects = result.mediumRedirects;
scribeRedirectsChecks = result.scribeRedirectsChecks ?? [...redirects.scribe.normal];
scribeCustomRedirects = result.scribeCustomRedirects ?? [];
resolve();
}
)
})
scribeRedirectsChecks = result.scribeRedirectsChecks ?? [...redirects.scribe.normal];
scribeCustomRedirects = result.scribeCustomRedirects ?? [];
}
export default {

View File

@@ -1,3 +1,5 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = [
@@ -192,25 +194,32 @@ function isReddit(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableReddit",
"redditFrontend",
"redditRedirects",
"libredditRedirectsChecks",
"libredditCustomRedirects",
"tedditRedirectsChecks",
"tedditCustomRedirects",
])
disableReddit = result.disableReddit ?? false;
redditFrontend = result.redditFrontend ?? 'libreddit';
if (result.redditRedirects)
redirects = result.redditRedirects;
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableReddit",
"redditFrontend",
"redditRedirects",
"libredditRedirectsChecks",
"libredditCustomRedirects",
"tedditRedirectsChecks",
"tedditCustomRedirects",
], (result) => {
disableReddit = result.disableReddit ?? false;
redditFrontend = result.redditFrontend ?? 'libreddit';
if (result.redditRedirects)
redirects = result.redditRedirects;
libredditRedirectsChecks = result.libredditRedirectsChecks ?? [...redirects.libreddit.normal];
libredditCustomRedirects = result.libredditCustomRedirects ?? [];
libredditRedirectsChecks = result.libredditRedirectsChecks ?? [...redirects.libreddit.normal];
libredditCustomRedirects = result.libredditCustomRedirects ?? [];
tedditRedirectsChecks = result.tedditRedirectsChecks ?? [...redirects.teddit.normal];
tedditCustomRedirects = result.tedditCustomRedirects ?? [];
tedditRedirectsChecks = result.tedditRedirectsChecks ?? [...redirects.teddit.normal];
tedditCustomRedirects = result.tedditCustomRedirects ?? [];
resolve();
}
)
})
}
export default {

View File

@@ -1,3 +1,5 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = [
@@ -250,28 +252,33 @@ function isSearch(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableSearch",
"searchFrontend",
"searchRedirects",
"whoogleRedirectsChecks",
"whoogleCustomRedirects",
"searxRedirectsChecks",
"searxCustomRedirects",
])
disableSearch = result.disableSearch ?? false;
searchFrontend = result.searchFrontend ?? 'searx';
if (result.searchRedirects)
redirects = result.searchRedirects;
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableSearch",
"searchFrontend",
"searchRedirects",
"whoogleRedirectsChecks",
"whoogleCustomRedirects",
"searxRedirectsChecks",
"searxCustomRedirects",
],
(result) => {
disableSearch = result.disableSearch ?? false;
searchFrontend = result.searchFrontend ?? 'searx';
if (result.searchRedirects) redirects = result.searchRedirects;
whoogleRedirectsChecks = result.whoogleRedirectsChecks ?? [...redirects.whoogle.normal];
whoogleCustomRedirects = result.whoogleCustomRedirects ?? [];
whoogleRedirectsChecks = result.whoogleRedirectsChecks ?? [...redirects.whoogle.normal];
whoogleCustomRedirects = result.whoogleCustomRedirects ?? [];
searxRedirectsChecks = result.searxRedirectsChecks ?? [...redirects.searx.normal];
searxRedirectsChecks = result.searxRedirectsChecks ?? [...redirects.searx.normal];
searxCustomRedirects = result.searxCustomRedirects ?? [];
searxCustomRedirects = result.searxCustomRedirects ?? [];
resolve();
}
);
});
}
export default {

View File

@@ -1,3 +1,5 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = [
@@ -80,18 +82,25 @@ function isTiktok(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableTiktok",
"tiktokRedirects",
"proxiTokRedirectsChecks",
"proxiTokCustomRedirects",
])
disableTiktok = result.disableTiktok ?? false;
if (result.tiktokRedirects)
redirects = result.tiktokRedirects;
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableTiktok",
"tiktokRedirects",
"proxiTokRedirectsChecks",
"proxiTokCustomRedirects",
],
(result) => {
disableTiktok = result.disableTiktok ?? false;
if (result.tiktokRedirects) redirects = result.tiktokRedirects;
proxiTokRedirectsChecks = result.proxiTokRedirectsChecks ?? [...redirects.proxiTok.normal];
proxiTokCustomRedirects = result.proxiTokCustomRedirects ?? [];
proxiTokRedirectsChecks = result.proxiTokRedirectsChecks ?? [...redirects.proxiTok.normal];
proxiTokCustomRedirects = result.proxiTokCustomRedirects ?? [];
resolve();
}
)
})
}
export default {

View File

@@ -1,3 +1,5 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = [
@@ -161,25 +163,32 @@ function isTranslate(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableTranslate",
"translateFrontend",
"translateRedirects",
"simplyTranslateRedirectsChecks",
"simplyTranslateCustomRedirects",
"lingvaRedirectsChecks",
"lingvaCustomRedirects",
]);
disableTranslate = result.disableTranslate ?? false;
translateFrontend = result.translateFrontend ?? "simplyTranslate";
if (result.translateRedirects)
redirects = result.translateRedirects
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableTranslate",
"translateFrontend",
"translateRedirects",
"simplyTranslateRedirectsChecks",
"simplyTranslateCustomRedirects",
"lingvaRedirectsChecks",
"lingvaCustomRedirects",
], (result) => {
disableTranslate = result.disableTranslate ?? false;
translateFrontend = result.translateFrontend ?? "simplyTranslate";
if (result.translateRedirects)
redirects = result.translateRedirects
simplyTranslateRedirectsChecks = result.simplyTranslateRedirectsChecks ?? [...redirects.simplyTranslate.normal];
simplyTranslateCustomRedirects = result.simplyTranslateCustomRedirects ?? [];
simplyTranslateRedirectsChecks = result.simplyTranslateRedirectsChecks ?? [...redirects.simplyTranslate.normal];
simplyTranslateCustomRedirects = result.simplyTranslateCustomRedirects ?? [];
lingvaRedirectsChecks = result.lingvaRedirectsChecks ?? [...redirects.lingva.normal];
lingvaCustomRedirects = result.lingvaCustomRedirects ?? [];
resolve();
});
});
lingvaRedirectsChecks = result.lingvaRedirectsChecks ?? [...redirects.lingva.normal];
lingvaCustomRedirects = result.lingvaCustomRedirects ?? [];
}
export default {

View File

@@ -1,3 +1,5 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
/*
@@ -157,18 +159,25 @@ function isTwitter(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableTwitter",
"twitterRedirects",
"nitterRedirectsChecks",
"nitterCustomRedirects",
]);
disableTwitter = result.disableTwitter ?? false;
if (result.twitterRedirects)
redirects = result.twitterRedirects;
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableTwitter",
"twitterRedirects",
"nitterRedirectsChecks",
"nitterCustomRedirects",
],
(result) => {
disableTwitter = result.disableTwitter ?? false;
if (result.twitterRedirects)
redirects = result.twitterRedirects;
nitterRedirectsChecks = result.nitterRedirectsChecks ?? [...redirects.nitter.normal];
nitterCustomRedirects = result.nitterCustomRedirects ?? [];
nitterRedirectsChecks = result.nitterRedirectsChecks ?? [...redirects.nitter.normal];
nitterCustomRedirects = result.nitterCustomRedirects ?? [];
resolve();
}
);
})
}
export default {

View File

@@ -1,3 +1,5 @@
window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = /wikipedia.org/;
@@ -106,18 +108,24 @@ function isWikipedia(url) {
}
async function init() {
let result = await browser.storage.sync.get([
"disableWikipedia",
"wikipediaRedirects",
"wikilessRedirectsChecks",
"wikilessCustomRedirects",
]);
disableWikipedia = result.disableWikipedia ?? false;
if (result.wikipediaRedirects)
redirects = result.wikipediaRedirects;
return new Promise((resolve) => {
browser.storage.sync.get(
[
"disableWikipedia",
"wikipediaRedirects",
"wikilessRedirectsChecks",
"wikilessCustomRedirects",
], (result) => {
disableWikipedia = result.disableWikipedia ?? false;
if (result.wikipediaRedirects) redirects = result.wikipediaRedirects;
wikilessRedirectsChecks = result.wikilessRedirectsChecks ?? [...redirects.wikiless.normal];
wikilessCustomRedirects = result.wikilessCustomRedirects ?? [];
wikilessRedirectsChecks = result.wikilessRedirectsChecks ?? [...redirects.wikiless.normal];
wikilessCustomRedirects = result.wikilessCustomRedirects ?? [];
resolve();
}
);
});
}
export default {

View File

@@ -210,46 +210,53 @@ function isYoutube(url) {
}
async function init() {
let result = await browser.storage.sync.get(
[
"invidiousAlwaysProxy",
"invidiousVideoQuality",
"invidiousTheme",
"persistInvidiousPrefs",
"disableYoutube",
"invidiousOnlyEmbeddedVideo",
"invidiousVolume",
"invidiousPlayerStyle",
"invidiousSubtitles",
"invidiousAutoplay",
"youtubeRedirects",
"youtubeFrontend",
"invidiousRedirectsChecks",
"invidiousCustomRedirects",
"pipedRedirectsChecks",
"pipedCustomRedirects",
]);
if (result.youtubeRedirects) redirects = result.youtubeRedirects;
return new Promise((resolve) => {
browser.storage.sync.get(
[
"invidiousAlwaysProxy",
"invidiousVideoQuality",
"invidiousTheme",
"persistInvidiousPrefs",
"disableYoutube",
"invidiousOnlyEmbeddedVideo",
"invidiousVolume",
"invidiousPlayerStyle",
"invidiousSubtitles",
"invidiousAutoplay",
"youtubeRedirects",
"youtubeFrontend",
"invidiousRedirectsChecks",
"invidiousCustomRedirects",
"pipedRedirectsChecks",
"pipedCustomRedirects",
],
(result) => {
if (result.youtubeRedirects) redirects = result.youtubeRedirects;
frontend = result.youtubeFrontend ?? 'piped';
disableYoutube = result.disableYoutube ?? false;
frontend = result.youtubeFrontend ?? 'piped';
disableYoutube = result.disableYoutube ?? false;
invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT';
invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo ?? false;
invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT';
invidiousTheme = result.invidiousTheme ?? 'DEFAULT';
invidiousVolume = result.invidiousVolume ?? '--';
invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'DEFAULT';
invidiousSubtitles = result.invidiousSubtitles || '';
invidiousAutoplay = result.invidiousAutoplay ?? 'DEFAULT';
invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT';
invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo ?? false;
invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT';
invidiousTheme = result.invidiousTheme ?? 'DEFAULT';
invidiousVolume = result.invidiousVolume ?? '--';
invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'DEFAULT';
invidiousSubtitles = result.invidiousSubtitles || '';
invidiousAutoplay = result.invidiousAutoplay ?? 'DEFAULT';
invidiousRedirectsChecks = result.invidiousRedirectsChecks ?? [...redirects.invidious.normal];
invidiousCustomRedirects = result.invidiousCustomRedirects ?? [];
invidiousRedirectsChecks = result.invidiousRedirectsChecks ?? [...redirects.invidious.normal];
invidiousCustomRedirects = result.invidiousCustomRedirects ?? [];
pipedRedirectsChecks = result.pipedRedirectsChecks ?? [...redirects.piped.normal];
pipedCustomRedirects = result.pipedCustomRedirects ?? [];
pipedRedirectsChecks = result.pipedRedirectsChecks ?? [...redirects.piped.normal];
pipedCustomRedirects = result.pipedCustomRedirects ?? [];
persistInvidiousPrefs = result.persistInvidiousPrefs ?? false;
persistInvidiousPrefs = result.persistInvidiousPrefs ?? false;
resolve();
});
})
}
function invidiousInitCookies(tabId) {

View File

@@ -15,21 +15,11 @@
"128": "assets/images/libredirect.svg"
},
"permissions": [
"tabs",
"storage",
"webRequest",
"webRequestBlocking",
"<all_urls>"
],
"page_action": {
"default_title": "Change Instance",
"default_icon": {
"16": "assets/images/libredirect.svg",
"32": "assets/images/libredirect.svg",
"48": "assets/images/libredirect.svg",
"128": "assets/images/libredirect.svg"
}
},
"browser_action": {
"default_title": "LibRedirect",
"browser_style": false,

View File

@@ -35,7 +35,7 @@ wholeInit();
browser.storage.onChanged.addListener(wholeInit);
browser.webRequest.onBeforeRequest.addListener(
async (details) => {
(details) => {
const url = new URL(details.url);
let initiator;
if (details.originUrl)
@@ -101,26 +101,6 @@ browser.webRequest.onResponseStarted.addListener(
{ urls: ["<all_urls>"] }
);
browser.tabs.onUpdated.addListener((tabId, changeInfo, _) => {
let url;
try {
url = new URL(changeInfo.url)
} catch (_) {
return;
}
var protocolHost = `${url.protocol}//${url.host}`;
if (youtubeHelper.getRedirects().invidious.normal.includes(protocolHost)) {
if (youtubeHelper.getPersistInvidiousPrefs())
youtubeHelper.invidiousInitCookies(tabId);
}
var mightyList = getMightyList();
if (mightyList.includes(protocolHost)) browser.pageAction.show(tabId);
});
function changeInstance(url) {
var tabUrl = new URL(url);
var protocolHost = `${tabUrl.protocol}//${tabUrl.host}`;
@@ -164,9 +144,6 @@ function changeInstance(url) {
if (newUrl) browser.tabs.update({ url: tabUrl.href.replace(protocolHost, newUrl) });
}
browser.pageAction.onClicked.addListener((tab) => changeInstance(tab.url));
function getMightyList() {
return [
...youtubeHelper.getCustomRedirects().invidious.normal,

View File

@@ -1,11 +1,11 @@
"use strict";
window.browser = window.browser || window.chrome;
import commonHelper from "../../../assets/javascripts/helpers/common.js";
import exceptionsHelper from "../../../assets/javascripts/helpers/exceptions.js";
let themeElement = document.getElementById("theme");
window.browser = window.browser || window.chrome;
browser.storage.sync.get(
["theme"],

View File

@@ -1,3 +1,5 @@
window.browser = window.browser || window.chrome;
function changeTheme() {
browser.storage.sync.get("theme", (result) => {
switch (result.theme) {

View File

@@ -1,4 +1,5 @@
"use strict";
window.browser = window.browser || window.chrome;
import commonHelper from "../../assets/javascripts/helpers/common.js";
import youtubeHelper from "../../assets/javascripts/helpers/youtube/youtube.js";
@@ -25,8 +26,6 @@ let disableMediumElement = document.querySelector("#disable-medium");
let disableImgurElement = document.querySelector("#disable-imgur");
let disableTiktokElement = document.querySelector("#disable-tiktok");
window.browser = window.browser || window.chrome;
async function wholeInit() {
await youtubeHelper.init();
await twitterHelper.init();