mirror of
https://codeberg.org/LibRedirect/libredirect.git
synced 2025-02-10 00:50:51 +01:00
Fixed cookies not working in invidious #44
This commit is contained in:
parent
83db3d13ad
commit
f0d70837fc
@ -1,8 +1,6 @@
|
|||||||
|
|
||||||
function getCookie() {
|
function getCookie() {
|
||||||
let ca = document.cookie.split(";");
|
for (const c of document.cookie.split(";")) {
|
||||||
for (let i = 0; i < ca.length; i++) {
|
|
||||||
let c = ca[i];
|
|
||||||
while (c.charAt(0) == " ") c = c.substring(1, c.length);
|
while (c.charAt(0) == " ") c = c.substring(1, c.length);
|
||||||
if (c.indexOf("PREFS=") == 0)
|
if (c.indexOf("PREFS=") == 0)
|
||||||
return JSON.parse(
|
return JSON.parse(
|
||||||
@ -15,24 +13,47 @@ function getCookie() {
|
|||||||
browser.storage.sync.get(
|
browser.storage.sync.get(
|
||||||
[
|
[
|
||||||
"invidiousAlwaysProxy",
|
"invidiousAlwaysProxy",
|
||||||
"invidiousVideoQuality",
|
|
||||||
"invidiousDarkMode",
|
|
||||||
"OnlyEmbeddedVideo",
|
|
||||||
"volume",
|
|
||||||
"invidiousPlayerStyle",
|
|
||||||
"invidiousSubtitles",
|
"invidiousSubtitles",
|
||||||
"autoplay",
|
"invidiousPlayerStyle",
|
||||||
|
"youtubeVolume",
|
||||||
|
"youtubeAutoplay",
|
||||||
|
"OnlyEmbeddedVideo",
|
||||||
|
"youtubeTheme",
|
||||||
|
"invidiousVideoQuality",
|
||||||
], (result) => {
|
], (result) => {
|
||||||
const prefs = getCookie();
|
let prefs = getCookie();
|
||||||
|
let changed = false;
|
||||||
|
|
||||||
prefs.local = result.invidiousAlwaysProxy;
|
if (result.invidiousAlwaysProxy !== undefined && prefs.local !== result.invidiousAlwaysProxy) {
|
||||||
prefs.quality = result.invidiousVideoQuality;
|
prefs.local = result.invidiousAlwaysProxy;
|
||||||
prefs.dark_mode = result.invidiousDarkMode;
|
changed = true;
|
||||||
prefs.volume = result.volume;
|
}
|
||||||
prefs.player_style = result.invidiousPlayerStyle;
|
if (result.invidiousVideoQuality !== undefined && prefs.quality !== result.invidiousVideoQuality) {
|
||||||
prefs.subtitles = result.invidiousSubtitles;
|
prefs.quality = result.invidiousVideoQuality;
|
||||||
prefs.autoplay = result.autoplay;
|
changed = true;
|
||||||
|
}
|
||||||
|
if (result.youtubeTheme !== undefined && prefs.dark_mode !== result.youtubeTheme) {
|
||||||
|
prefs.dark_mode = result.youtubeTheme;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (result.youtubeVolume !== undefined && prefs.volume !== result.youtubeVolume) {
|
||||||
|
prefs.volume = result.youtubeVolume;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (result.invidiousPlayerStyle !== undefined && prefs.player_style !== result.invidiousPlayerStyle) {
|
||||||
|
prefs.player_style = result.invidiousPlayerStyle;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (result.invidiousSubtitles !== undefined && prefs.subtitles === result.invidiousSubtitles) {
|
||||||
|
prefs.subtitles = result.invidiousSubtitles;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (result.youtubeAutoplay !== undefined && prefs.autoplay !== result.youtubeAutoplay) {
|
||||||
|
prefs.autoplay = result.youtubeAutoplay;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (changed) document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`;
|
||||||
|
|
||||||
document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`;
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -300,6 +300,12 @@ function isPipedorInvidious(url, type) {
|
|||||||
return (type === "main_frame" || type === "sub_frame") && [...redirects.invidious.normal, ...redirects.piped.normal].includes(protocolHost);
|
return (type === "main_frame" || type === "sub_frame") && [...redirects.invidious.normal, ...redirects.piped.normal].includes(protocolHost);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isUrlPipedorInvidious(url) {
|
||||||
|
url = new URL(url);
|
||||||
|
let protocolHost = `${url.protocol}//${url.host}`;
|
||||||
|
return [...redirects.invidious.normal, ...redirects.piped.normal].includes(protocolHost);
|
||||||
|
}
|
||||||
|
|
||||||
function addUrlParams(url) {
|
function addUrlParams(url) {
|
||||||
|
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = `${url.protocol}//${url.host}`;
|
||||||
@ -360,7 +366,6 @@ function addUrlParams(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isChanged) return url.href;
|
if (isChanged) return url.href;
|
||||||
else return;
|
else return;
|
||||||
}
|
}
|
||||||
@ -449,6 +454,7 @@ export default {
|
|||||||
isYoutube,
|
isYoutube,
|
||||||
|
|
||||||
isPipedorInvidious,
|
isPipedorInvidious,
|
||||||
|
isUrlPipedorInvidious,
|
||||||
addUrlParams,
|
addUrlParams,
|
||||||
|
|
||||||
getDisable,
|
getDisable,
|
||||||
|
@ -103,6 +103,12 @@ browser.webRequest.onResponseStarted.addListener(
|
|||||||
{ urls: ["<all_urls>"] }
|
{ urls: ["<all_urls>"] }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
browser.tabs.onUpdated.addListener(
|
||||||
|
(tabId, changeInfo) => {
|
||||||
|
if (changeInfo.url && youtubeHelper.isUrlPipedorInvidious(changeInfo.url))
|
||||||
|
youtubeHelper.invidiousInitCookies(tabId);
|
||||||
|
});
|
||||||
|
|
||||||
function changeInstance(url) {
|
function changeInstance(url) {
|
||||||
var tabUrl = new URL(url);
|
var tabUrl = new URL(url);
|
||||||
var protocolHost = `${tabUrl.protocol}//${tabUrl.host}`;
|
var protocolHost = `${tabUrl.protocol}//${tabUrl.host}`;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user