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