From c50b4bbb082f0931fbfc92647d8b7516030b1803 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Mon, 14 Mar 2022 22:10:08 +0300 Subject: Added almost all Piped-Material settings --- .../helpers/translate/lingva-preferences.js | 6 +- .../javascripts/helpers/translate/translate.js | 1 - src/assets/javascripts/helpers/twitter.js | 12 +- .../helpers/youtube/invidious-options.js | 170 ----------- src/assets/javascripts/helpers/youtube/options.js | 337 +++++++++++++++++++++ .../javascripts/helpers/youtube/piped-options.js | 138 --------- .../helpers/youtube/pipedMaterial-preferences.js | 29 +- .../javascripts/helpers/youtube/youtube-options.js | 28 -- src/assets/javascripts/helpers/youtube/youtube.js | 165 +++------- src/pages/options/youtube/piped.js | 91 +++++- src/pages/options/youtube/youtube.html | 78 ++++- src/pages/options/youtube/youtube.js | 6 +- 12 files changed, 580 insertions(+), 481 deletions(-) delete mode 100644 src/assets/javascripts/helpers/youtube/invidious-options.js create mode 100644 src/assets/javascripts/helpers/youtube/options.js delete mode 100644 src/assets/javascripts/helpers/youtube/piped-options.js delete mode 100644 src/assets/javascripts/helpers/youtube/youtube-options.js (limited to 'src') diff --git a/src/assets/javascripts/helpers/translate/lingva-preferences.js b/src/assets/javascripts/helpers/translate/lingva-preferences.js index 1cf08f65..b63e2876 100644 --- a/src/assets/javascripts/helpers/translate/lingva-preferences.js +++ b/src/assets/javascripts/helpers/translate/lingva-preferences.js @@ -11,8 +11,4 @@ browser.storage.local.get( if (applyThemeToSites && theme != "DEFAULT") localStorage.setItem("chakra-ui-color-mode", r.theme); } -) - -window.onunload = () => { - localStorage.removeItem("chakra-ui-color-mode"); -}; +) \ No newline at end of file diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js index f47ee82b..05145542 100644 --- a/src/assets/javascripts/helpers/translate/translate.js +++ b/src/assets/javascripts/helpers/translate/translate.js @@ -184,7 +184,6 @@ function setSimplyTranslateEngine(val) { console.log("simplyTranslateEngine: ", val) } - function isTranslateRedirects(url, type, frontend) { let protocolHost = `${url.protocol}//${url.host}`; diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 64868bbf..7dbdfcf9 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -3,11 +3,8 @@ window.browser = window.browser || window.chrome; import commonHelper from './common.js' const targets = [ - /^https?:\/\/twitter\.com/, - /^https?:\/\/www\.twitter\.com/, - /^https?:\/\/mobile\.twitter\.com/, - /^https?:\/\/pbs\.twimg\.com/, - /^https?:\/\/video\.twimg\.com/, + /^https?:\/\/(www\.|mobile\.|)twitter\.com/, + /^https?:\/\/(pbs\.|video\.|)twimg\.com/, /^https?:\/\/platform\.twitter\.com\/embed/, /^https?:\/\/t\.co/ ]; @@ -125,7 +122,10 @@ function redirect(url, initiator) { if (!targets.some((rx) => rx.test(url.href))) return null; - if (url.pathname.split("/").includes("home")) return null; + if (url.pathname.split("/").includes("home")) { + console.log("twitter homepage"); + return null; + } if ( bypassWatchOnTwitter && diff --git a/src/assets/javascripts/helpers/youtube/invidious-options.js b/src/assets/javascripts/helpers/youtube/invidious-options.js deleted file mode 100644 index aab5508b..00000000 --- a/src/assets/javascripts/helpers/youtube/invidious-options.js +++ /dev/null @@ -1,170 +0,0 @@ -"use strict"; - -window.browser = window.browser || window.chrome; - -export let invidiousQuality; -export const getInvidiousQuality = () => invidiousQuality; -export function setinvidiousQuality(val) { - invidiousQuality = val; - browser.storage.local.set({ invidiousQuality }) - console.log("invidiousQuality: ", invidiousQuality) -} - -export let invidiousAlwaysProxy; -export const getInvidiousAlwaysProxy = () => invidiousAlwaysProxy; -export function setInvidiousAlwaysProxy(val) { - invidiousAlwaysProxy = val; - browser.storage.local.set({ invidiousAlwaysProxy }) - console.log("invidiousAlwaysProxy: ", invidiousAlwaysProxy); -} - -export let invidiousPlayerStyle; -export const getInvidiousPlayerStyle = () => invidiousPlayerStyle; -export function setInvidiousPlayerStyle(val) { - invidiousPlayerStyle = val; - browser.storage.local.set({ invidiousPlayerStyle }) - console.log("invidiousPlayerStyle: ", invidiousPlayerStyle) -} - -export let invidiousVideoLoop; -export const getInvidiousVideoLoop = () => invidiousVideoLoop; -export function setInvidiousVideoLoop(val) { - invidiousVideoLoop = val; - browser.storage.local.set({ invidiousVideoLoop }) - console.log("invidiousVideoLoop: ", invidiousVideoLoop) -} - -export let invidiousContinueAutoplay; -export const getInvidiousContinueAutoplay = () => invidiousContinueAutoplay; -export function setInvidiousContinueAutoplay(val) { - invidiousContinueAutoplay = val; - browser.storage.local.set({ invidiousContinueAutoplay }) - console.log("invidiousContinueAutoplay: ", invidiousContinueAutoplay) -} - -export let invidiousContinue; -export const getInvidiousContinue = () => invidiousContinue; -export function setInvidiousContinue(val) { - invidiousContinue = val; - browser.storage.local.set({ invidiousContinue }) - console.log("invidiousContinue: ", invidiousContinue) -} - -export let invidiousSpeed; -export const getInvidiousSpeed = () => invidiousSpeed; -export function setInvidiousSpeed(val) { - invidiousSpeed = val; - browser.storage.local.set({ invidiousSpeed }) - console.log("invidiousSpeed: ", invidiousSpeed) -} - -export let invidiousQualityDash; -export const getInvidiousQualityDash = () => invidiousQualityDash; -export function setInvidiousQualityDash(val) { - invidiousQualityDash = val; - browser.storage.local.set({ invidiousQualityDash }) - console.log("invidiousQualityDash: ", invidiousQualityDash) -} - -export let invidiousComments; -export const getInvidiousComments = () => invidiousComments; -export function setInvidiousComments(val) { - invidiousComments = val; - browser.storage.local.set({ invidiousComments }) - console.log("invidiousComments: ", invidiousComments) -} - - -export let invidiousCaptions; -export const getInvidiousCaptions = () => invidiousCaptions; -export function setInvidiousCaptions(val) { - invidiousCaptions = val; - browser.storage.local.set({ invidiousCaptions }) - console.log("invidiousCaptions: ", invidiousCaptions) -} - -export let invidiousRelatedVideos; -export const getInvidiousRelatedVideos = () => invidiousRelatedVideos; -export function setInvidiousRelatedVideos(val) { - invidiousRelatedVideos = val; - browser.storage.local.set({ invidiousRelatedVideos }) - console.log("invidiousRelatedVideos: ", invidiousRelatedVideos) -} - -export let invidiousAnnotations; -export const getInvidiousAnnotations = () => invidiousAnnotations; -export function setInvidiousAnnotations(val) { - invidiousAnnotations = val; - browser.storage.local.set({ invidiousAnnotations }) - console.log("invidiousAnnotations: ", invidiousAnnotations) -} - -export let invidiousExtendDesc; -export const getInvidiousExtendDesc = () => invidiousExtendDesc; -export function setInvidiousExtendDesc(val) { - invidiousExtendDesc = val; - browser.storage.local.set({ invidiousExtendDesc }) - console.log("invidiousExtendDesc: ", invidiousExtendDesc) -} - -export let invidiousVrMode; -export const getInvidiousVrMode = () => invidiousVrMode; -export function setInvidiousVrMode(val) { - invidiousVrMode = val; - browser.storage.local.set({ invidiousVrMode }) - console.log("invidiousVrMode: ", invidiousVrMode) -} - -export let invidiousSavePlayerPos; -export const getInvidiousSavePlayerPos = () => invidiousSavePlayerPos; -export function setInvidiousSavePlayerPos(val) { - invidiousSavePlayerPos = val; - browser.storage.local.set({ invidiousSavePlayerPos }) - console.log("invidiousSavePlayerPos: ", invidiousSavePlayerPos) -} - -export async function invidiousInit() { - return new Promise( - resolve => { - browser.storage.local.get( - [ - "invidiousQuality", - "invidiousAlwaysProxy", - "invidiousQuality", - "invidiousPlayerStyle", - "invidiousVideoLoop", - "invidiousContinueAutoplay", - "invidiousContinue", - "invidiousSpeed", - "invidiousQualityDash", - "invidiousComments", - "invidiousCaptions", - "invidiousRelatedVideos", - "invidiousAnnotations", - "invidiousExtendDesc", - "invidiousVrMode", - "invidiousSavePlayerPos", - ], - r => { - invidiousVideoLoop = r.invidiousVideoLoop ?? false; - invidiousAlwaysProxy = r.invidiousAlwaysProxy ?? false; - invidiousPlayerStyle = r.invidiousPlayerStyle ?? 'invidious'; - invidiousQuality = r.invidiousQuality ?? 'hd720'; - invidiousContinueAutoplay = r.invidiousContinueAutoplay ?? true; - invidiousContinue = r.invidiousContinue ?? false; - invidiousSpeed = r.invidiousSpeed ?? '1.0'; - invidiousQualityDash = r.invidiousQualityDash ?? 'auto'; - invidiousComments = r.invidiousComments ?? ['youtube', '']; - invidiousCaptions = r.invidiousCaptions ?? ['', '', '']; - invidiousRelatedVideos = r.invidiousRelatedVideos ?? true; - invidiousAnnotations = r.invidiousAnnotations ?? false; - invidiousExtendDesc = r.invidiousExtendDesc ?? false; - invidiousVrMode = r.invidiousVrMode ?? true; - invidiousSavePlayerPos = r.invidiousSavePlayerPos ?? false; - - resolve(); - } - ) - } - ) -} diff --git a/src/assets/javascripts/helpers/youtube/options.js b/src/assets/javascripts/helpers/youtube/options.js new file mode 100644 index 00000000..27bed3f8 --- /dev/null +++ b/src/assets/javascripts/helpers/youtube/options.js @@ -0,0 +1,337 @@ +"use strict"; + +window.browser = window.browser || window.chrome; + +export let youtubeListen; +export const getYoutubeListen = () => youtubeListen; +export function setYoutubeListen(val) { + youtubeListen = val; + browser.storage.local.set({ youtubeListen }) + console.log("youtubeListen: ", youtubeListen) +} + +export let volume; +export const getVolume = () => volume; +export function setVolume(val) { + volume = val; + browser.storage.local.set({ youtubeVolume: volume }) + console.log("youtubeVolume: ", volume) +} + +export let youtubeAutoplay; +export const getAutoplay = () => youtubeAutoplay; +export function setAutoplay(val) { + youtubeAutoplay = val; + browser.storage.local.set({ youtubeAutoplay }) + console.log("youtubeAutoplay: ", youtubeAutoplay) +} + +export let invidiousQuality; +export const getInvidiousQuality = () => invidiousQuality; +export function setinvidiousQuality(val) { + invidiousQuality = val; + browser.storage.local.set({ invidiousQuality }) + console.log("invidiousQuality: ", invidiousQuality) +} + +export let invidiousAlwaysProxy; +export const getInvidiousAlwaysProxy = () => invidiousAlwaysProxy; +export function setInvidiousAlwaysProxy(val) { + invidiousAlwaysProxy = val; + browser.storage.local.set({ invidiousAlwaysProxy }) + console.log("invidiousAlwaysProxy: ", invidiousAlwaysProxy); +} + +export let invidiousPlayerStyle; +export const getInvidiousPlayerStyle = () => invidiousPlayerStyle; +export function setInvidiousPlayerStyle(val) { + invidiousPlayerStyle = val; + browser.storage.local.set({ invidiousPlayerStyle }) + console.log("invidiousPlayerStyle: ", invidiousPlayerStyle) +} + +export let invidiousVideoLoop; +export const getInvidiousVideoLoop = () => invidiousVideoLoop; +export function setInvidiousVideoLoop(val) { + invidiousVideoLoop = val; + browser.storage.local.set({ invidiousVideoLoop }) + console.log("invidiousVideoLoop: ", invidiousVideoLoop) +} + +export let invidiousContinueAutoplay; +export const getInvidiousContinueAutoplay = () => invidiousContinueAutoplay; +export function setInvidiousContinueAutoplay(val) { + invidiousContinueAutoplay = val; + browser.storage.local.set({ invidiousContinueAutoplay }) + console.log("invidiousContinueAutoplay: ", invidiousContinueAutoplay) +} + +export let invidiousContinue; +export const getInvidiousContinue = () => invidiousContinue; +export function setInvidiousContinue(val) { + invidiousContinue = val; + browser.storage.local.set({ invidiousContinue }) + console.log("invidiousContinue: ", invidiousContinue) +} + +export let invidiousSpeed; +export const getInvidiousSpeed = () => invidiousSpeed; +export function setInvidiousSpeed(val) { + invidiousSpeed = val; + browser.storage.local.set({ invidiousSpeed }) + console.log("invidiousSpeed: ", invidiousSpeed) +} + +export let invidiousQualityDash; +export const getInvidiousQualityDash = () => invidiousQualityDash; +export function setInvidiousQualityDash(val) { + invidiousQualityDash = val; + browser.storage.local.set({ invidiousQualityDash }) + console.log("invidiousQualityDash: ", invidiousQualityDash) +} + +export let invidiousComments; +export const getInvidiousComments = () => invidiousComments; +export function setInvidiousComments(val) { + invidiousComments = val; + browser.storage.local.set({ invidiousComments }) + console.log("invidiousComments: ", invidiousComments) +} + + +export let invidiousCaptions; +export const getInvidiousCaptions = () => invidiousCaptions; +export function setInvidiousCaptions(val) { + invidiousCaptions = val; + browser.storage.local.set({ invidiousCaptions }) + console.log("invidiousCaptions: ", invidiousCaptions) +} + +export let invidiousRelatedVideos; +export const getInvidiousRelatedVideos = () => invidiousRelatedVideos; +export function setInvidiousRelatedVideos(val) { + invidiousRelatedVideos = val; + browser.storage.local.set({ invidiousRelatedVideos }) + console.log("invidiousRelatedVideos: ", invidiousRelatedVideos) +} + +export let invidiousAnnotations; +export const getInvidiousAnnotations = () => invidiousAnnotations; +export function setInvidiousAnnotations(val) { + invidiousAnnotations = val; + browser.storage.local.set({ invidiousAnnotations }) + console.log("invidiousAnnotations: ", invidiousAnnotations) +} + +export let invidiousExtendDesc; +export const getInvidiousExtendDesc = () => invidiousExtendDesc; +export function setInvidiousExtendDesc(val) { + invidiousExtendDesc = val; + browser.storage.local.set({ invidiousExtendDesc }) + console.log("invidiousExtendDesc: ", invidiousExtendDesc) +} + +export let invidiousVrMode; +export const getInvidiousVrMode = () => invidiousVrMode; +export function setInvidiousVrMode(val) { + invidiousVrMode = val; + browser.storage.local.set({ invidiousVrMode }) + console.log("invidiousVrMode: ", invidiousVrMode) +} + +export let invidiousSavePlayerPos; +export const getInvidiousSavePlayerPos = () => invidiousSavePlayerPos; +export function setInvidiousSavePlayerPos(val) { + invidiousSavePlayerPos = val; + browser.storage.local.set({ invidiousSavePlayerPos }) + console.log("invidiousSavePlayerPos: ", invidiousSavePlayerPos) +} + +export let pipedBufferGoal; +export const getPipedBufferGoal = () => pipedBufferGoal; +export function setPipedBufferGoal(val) { + pipedBufferGoal = val; + browser.storage.local.set({ pipedBufferGoal }) + console.log("pipedBufferGoal: ", pipedBufferGoal) +} + +export let pipedComments; +export const getPipedComments = () => pipedComments; +export function setPipedComments(val) { + pipedComments = val; + browser.storage.local.set({ pipedComments }) + console.log("pipedComments: ", pipedComments) +} + +export let pipedDisableLBRY; +export const getPipedDisableLBRY = () => pipedDisableLBRY; +export function setPipedDisableLBRY(val) { + pipedDisableLBRY = val; + browser.storage.local.set({ pipedDisableLBRY }) + console.log("pipedDisableLBRY: ", pipedDisableLBRY) +} + +export let pipedEnabledCodecs; +export const getPipedEnabledCodecs = () => pipedEnabledCodecs; +export function setPipedEnabledCodecs(val) { + pipedEnabledCodecs = val; + browser.storage.local.set({ pipedEnabledCodecs }) + console.log("pipedEnabledCodecs: ", pipedEnabledCodecs) +} + +export let pipedHomepage; +export const getPipedHomepage = () => pipedHomepage; +export function setPipedHomepage(val) { + pipedHomepage = val; + browser.storage.local.set({ pipedHomepage }) + console.log("pipedHomepage: ", pipedHomepage) +} + +export let pipedMinimizeDescription; +export const getPipedMinimizeDescription = () => pipedMinimizeDescription; +export function setPipedMinimizeDescription(val) { + pipedMinimizeDescription = val; + browser.storage.local.set({ pipedMinimizeDescription }) + console.log("pipedMinimizeDescription: ", pipedMinimizeDescription) +} + +export let pipedProxyLBRY; +export const getPipedProxyLBRY = () => pipedProxyLBRY; +export function setPipedProxyLBRY(val) { + pipedProxyLBRY = val; + browser.storage.local.set({ pipedProxyLBRY }) + console.log("pipedProxyLBRY: ", pipedProxyLBRY) +} + +export let pipedQuality; +export const getPipedQuality = () => pipedQuality; +export function setPipedQuality(val) { + pipedQuality = val; + browser.storage.local.set({ pipedQuality }) + console.log("pipedQuality: ", pipedQuality) +} + +export let pipedRegion; +export const getPipedRegion = () => pipedRegion; +export function setPipedRegion(val) { + pipedRegion = val; + browser.storage.local.set({ pipedRegion }) + console.log("pipedRegion: ", pipedRegion) +} + +export let pipedSelectedSkip; +export const getPipedSelectedSkip = () => pipedSelectedSkip; +export function setPipedSelectedSkip(val) { + pipedSelectedSkip = val; + browser.storage.local.set({ pipedSelectedSkip }) + console.log("pipedSelectedSkip: ", pipedSelectedSkip) +} + +export let pipedSponsorblock; +export const getPipedSponsorblock = () => pipedSponsorblock; +export function setPipedSponsorblock(val) { + pipedSponsorblock = val; + browser.storage.local.set({ pipedSponsorblock }) + console.log("pipedSponsorblock: ", pipedSponsorblock) +} + +export let pipedWatchHistory; +export const getPipedWatchHistory = () => pipedWatchHistory; +export function setPipedWatchHistory(val) { + pipedWatchHistory = val; + browser.storage.local.set({ pipedWatchHistory }) + console.log("pipedWatchHistory: ", pipedWatchHistory) +} + +export let pipedMaterialSkipToLastPoint; +export const getPipedMaterialSkipToLastPoint = () => pipedMaterialSkipToLastPoint; +export function setPipedMaterialSkipToLastPoint(val) { + pipedMaterialSkipToLastPoint = val; + browser.storage.local.set({ pipedMaterialSkipToLastPoint }) + console.log("pipedMaterialSkipToLastPoint: ", pipedMaterialSkipToLastPoint) +} + +export async function initOptions() { + return new Promise( + resolve => { + browser.storage.local.get( + [ + "youtubeListen", + "youtubeVolume", + "youtubeAutoplay", + + "invidiousQuality", + "invidiousAlwaysProxy", + "invidiousQuality", + "invidiousPlayerStyle", + "invidiousVideoLoop", + "invidiousContinueAutoplay", + "invidiousContinue", + "invidiousSpeed", + "invidiousQualityDash", + "invidiousComments", + "invidiousCaptions", + "invidiousRelatedVideos", + "invidiousAnnotations", + "invidiousExtendDesc", + "invidiousVrMode", + "invidiousSavePlayerPos", + + "pipedBufferGoal", + "pipedComments", + "pipedDisableLBRY", + "pipedEnabledCodecs", + "pipedHomepage", + "pipedMinimizeDescription", + "pipedProxyLBRY", + "pipedQuality", + "pipedRegion", + "pipedSelectedSkip", + "pipedSponsorblock", + "pipedWatchHistory", + + "pipedMaterialSkipToLastPoint", + ], + r => { + + youtubeListen = r.youtubeListen ?? false; + volume = r.youtubeVolume ?? 100; + youtubeAutoplay = r.youtubeAutoplay ?? false; + + invidiousVideoLoop = r.invidiousVideoLoop ?? false; + invidiousAlwaysProxy = r.invidiousAlwaysProxy ?? false; + invidiousPlayerStyle = r.invidiousPlayerStyle ?? 'invidious'; + invidiousQuality = r.invidiousQuality ?? 'hd720'; + invidiousContinueAutoplay = r.invidiousContinueAutoplay ?? true; + invidiousContinue = r.invidiousContinue ?? false; + invidiousSpeed = r.invidiousSpeed ?? '1.0'; + invidiousQualityDash = r.invidiousQualityDash ?? 'auto'; + invidiousComments = r.invidiousComments ?? ['youtube', '']; + invidiousCaptions = r.invidiousCaptions ?? ['', '', '']; + invidiousRelatedVideos = r.invidiousRelatedVideos ?? true; + invidiousAnnotations = r.invidiousAnnotations ?? false; + invidiousExtendDesc = r.invidiousExtendDesc ?? false; + invidiousVrMode = r.invidiousVrMode ?? true; + invidiousSavePlayerPos = r.invidiousSavePlayerPos ?? false; + + pipedBufferGoal = r.pipedBufferGoal ?? 10; + pipedComments = r.pipedComments ?? true; + pipedDisableLBRY = r.pipedDisableLBRY ?? false; + pipedEnabledCodecs = r.pipedEnabledCodecs ?? ["av1", "vp9", "avc"]; + pipedHomepage = r.pipedHomepage ?? "trending"; + pipedMinimizeDescription = r.pipedMinimizeDescription ?? false; + pipedProxyLBRY = r.pipedProxyLBRY ?? false; + pipedQuality = r.pipedQuality ?? 0; + pipedRegion = r.pipedRegion ?? "US"; + pipedSelectedSkip = r.pipedSelectedSkip ?? ["sponsor", "interaction", "selfpromo", "music_offtopic"]; + pipedSponsorblock = r.pipedSponsorblock ?? true; + pipedWatchHistory = r.pipedWatchHistory ?? false; + + pipedMaterialSkipToLastPoint = r.pipedMaterialSkipToLastPoint ?? true; + + resolve(); + } + ) + } + ) +} \ No newline at end of file diff --git a/src/assets/javascripts/helpers/youtube/piped-options.js b/src/assets/javascripts/helpers/youtube/piped-options.js deleted file mode 100644 index f0aea4ea..00000000 --- a/src/assets/javascripts/helpers/youtube/piped-options.js +++ /dev/null @@ -1,138 +0,0 @@ -"use strict"; - -window.browser = window.browser || window.chrome; - -export let pipedBufferGoal; -export const getPipedBufferGoal = () => pipedBufferGoal; -export function setPipedBufferGoal(val) { - pipedBufferGoal = val; - browser.storage.local.set({ pipedBufferGoal }) - console.log("pipedBufferGoal: ", pipedBufferGoal) -} - -export let pipedComments; -export const getPipedComments = () => pipedComments; -export function setPipedComments(val) { - pipedComments = val; - browser.storage.local.set({ pipedComments }) - console.log("pipedComments: ", pipedComments) -} - -export let pipedDisableLBRY; -export const getPipedDisableLBRY = () => pipedDisableLBRY; -export function setPipedDisableLBRY(val) { - pipedDisableLBRY = val; - browser.storage.local.set({ pipedDisableLBRY }) - console.log("pipedDisableLBRY: ", pipedDisableLBRY) -} - -export let pipedEnabledCodecs; -export const getPipedEnabledCodecs = () => pipedEnabledCodecs; -export function setPipedEnabledCodecs(val) { - pipedEnabledCodecs = val; - browser.storage.local.set({ pipedEnabledCodecs }) - console.log("pipedEnabledCodecs: ", pipedEnabledCodecs) -} - -export let pipedHomepage; -export const getPipedHomepage = () => pipedHomepage; -export function setPipedHomepage(val) { - pipedHomepage = val; - browser.storage.local.set({ pipedHomepage }) - console.log("pipedHomepage: ", pipedHomepage) -} - -export let pipedMinimizeDescription; -export const getPipedMinimizeDescription = () => pipedMinimizeDescription; -export function setPipedMinimizeDescription(val) { - pipedMinimizeDescription = val; - browser.storage.local.set({ pipedMinimizeDescription }) - console.log("pipedMinimizeDescription: ", pipedMinimizeDescription) -} - -export let pipedProxyLBRY; -export const getPipedProxyLBRY = () => pipedProxyLBRY; -export function setPipedProxyLBRY(val) { - pipedProxyLBRY = val; - browser.storage.local.set({ pipedProxyLBRY }) - console.log("pipedProxyLBRY: ", pipedProxyLBRY) -} - -export let pipedQuality; -export const getPipedQuality = () => pipedQuality; -export function setPipedQuality(val) { - pipedQuality = val; - browser.storage.local.set({ pipedQuality }) - console.log("pipedQuality: ", pipedQuality) -} - -export let pipedRegion; -export const getPipedRegion = () => pipedRegion; -export function setPipedRegion(val) { - pipedRegion = val; - browser.storage.local.set({ pipedRegion }) - console.log("pipedRegion: ", pipedRegion) -} - -export let pipedSelectedSkip; -export const getPipedSelectedSkip = () => pipedSelectedSkip; -export function setPipedSelectedSkip(val) { - pipedSelectedSkip = val; - browser.storage.local.set({ pipedSelectedSkip }) - console.log("pipedSelectedSkip: ", pipedSelectedSkip) -} - -export let pipedSponsorblock; -export const getPipedSponsorblock = () => pipedSponsorblock; -export function setPipedSponsorblock(val) { - pipedSponsorblock = val; - browser.storage.local.set({ pipedSponsorblock }) - console.log("pipedSponsorblock: ", pipedSponsorblock) -} - -export let pipedWatchHistory; -export const getPipedWatchHistory = () => pipedWatchHistory; -export function setPipedWatchHistory(val) { - pipedWatchHistory = val; - browser.storage.local.set({ pipedWatchHistory }) - console.log("pipedWatchHistory: ", pipedWatchHistory) -} - -export async function pipedInit() { - return new Promise( - resolve => { - browser.storage.local.get( - [ - "pipedBufferGoal", - "pipedComments", - "pipedDisableLBRY", - "pipedEnabledCodecs", - "pipedHomepage", - "pipedMinimizeDescription", - "pipedProxyLBRY", - "pipedQuality", - "pipedRegion", - "pipedSelectedSkip", - "pipedSponsorblock", - "pipedWatchHistory", - ], - r => { - pipedBufferGoal = r.pipedBufferGoal ?? 10; - pipedComments = r.pipedComments ?? true; - pipedDisableLBRY = r.pipedDisableLBRY ?? false; - pipedEnabledCodecs = r.pipedEnabledCodecs ?? ["av1", "vp9", "avc"]; - pipedHomepage = r.pipedHomepage ?? "trending"; - pipedMinimizeDescription = r.pipedMinimizeDescription ?? false; - pipedProxyLBRY = r.pipedProxyLBRY ?? false; - pipedQuality = r.pipedQuality ?? 0; - pipedRegion = r.pipedRegion ?? "US"; - pipedSelectedSkip = r.pipedSelectedSkip ?? ["sponsor", "interaction", "selfpromo", "music_offtopic"]; - pipedSponsorblock = r.pipedSponsorblock ?? true; - pipedWatchHistory = r.pipedWatchHistory ?? false; - - resolve(); - } - ) - } - ) -} diff --git a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js index 94d54dd3..312271fe 100644 --- a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js +++ b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js @@ -3,13 +3,29 @@ window.browser = window.browser || window.chrome; browser.storage.local.get( [ "theme", - "youtubeVolume", "youtubeAutoplay", + "youtubeVolume", + "youtubeListen", + + "pipedDisableLBRY", + "pipedProxyLBRY", + "pipedSelectedSkip", + "pipedSponsorblock", + + "pipedMaterialSkipToLastPoint", ], r => { let theme = r.theme ?? "dark"; let youtubeAutoplay = r.youtubeAutoplay ?? false; let youtubeVolume = r.youtubeVolume ?? 100; + let youtubeListen = r.youtubeListen ?? false; + + let pipedDisableLBRY = r.pipedDisableLBRY ?? false; + let pipedProxyLBRY = r.pipedProxyLBRY ?? false; + let pipedSelectedSkip = r.pipedSelectedSkip ?? []; + let pipedSponsorblock = r.pipedSponsorblock ?? true; + + let pipedMaterialSkipToLastPoint = r.pipedMaterialSkipToLastPoint ?? true; let prefs = {}; if (localStorage.getItem("PREFERENCES")) prefs = JSON.parse(localStorage.getItem("PREFERENCES")); @@ -17,9 +33,16 @@ browser.storage.local.get( if (theme == 'dark') prefs.darkMode = true; if (theme == 'light') prefs.darkMode = false; - prefs.playerAutoplay = youtubeAutoplay == 'true'; prefs.volume = youtubeVolume / 100; + prefs.playerAutoplay = youtubeAutoplay; + + prefs.listen = youtubeListen; + prefs.disableLBRY = pipedDisableLBRY; + prefs.proxyLBRY = pipedProxyLBRY; + prefs.sponsorblock = pipedSponsorblock; + prefs.skipToLastPoint = pipedMaterialSkipToLastPoint; + prefs.selectedSkip = pipedSelectedSkip; localStorage.setItem("PREFERENCES", JSON.stringify(prefs)); } -) +) \ No newline at end of file diff --git a/src/assets/javascripts/helpers/youtube/youtube-options.js b/src/assets/javascripts/helpers/youtube/youtube-options.js deleted file mode 100644 index cacc80c7..00000000 --- a/src/assets/javascripts/helpers/youtube/youtube-options.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; - -window.browser = window.browser || window.chrome; - -export let youtubeListen; -export const getYoutubeListen = () => youtubeListen; -export function setYoutubeListen(val) { - youtubeListen = val; - browser.storage.local.set({ youtubeListen }) - console.log("youtubeListen: ", youtubeListen) -} - -export async function youtubeInit() { - return new Promise( - resolve => { - browser.storage.local.get( - [ - "youtubeListen" - ], - r => { - youtubeListen = r.youtubeListen ?? false; - - resolve(); - } - ) - } - ) -} diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 21a5c634..eb91ab08 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -1,128 +1,73 @@ "use strict"; +window.browser = window.browser || window.chrome; + import commonHelper from '../common.js' import { - invidiousQuality, - getInvidiousQuality, - setinvidiousQuality, + youtubeListen, getYoutubeListen, setYoutubeListen, - invidiousAlwaysProxy, - setInvidiousAlwaysProxy, - getInvidiousAlwaysProxy, + invidiousQuality, getInvidiousQuality, setinvidiousQuality, - invidiousPlayerStyle, - getInvidiousPlayerStyle, - setInvidiousPlayerStyle, + invidiousAlwaysProxy, setInvidiousAlwaysProxy, getInvidiousAlwaysProxy, - invidiousInit, - invidiousVideoLoop, - getInvidiousVideoLoop, - setInvidiousVideoLoop, + invidiousPlayerStyle, getInvidiousPlayerStyle, setInvidiousPlayerStyle, - invidiousContinueAutoplay, - getInvidiousContinueAutoplay, - setInvidiousContinueAutoplay, + invidiousVideoLoop, getInvidiousVideoLoop, setInvidiousVideoLoop, - invidiousContinue, - getInvidiousContinue, - setInvidiousContinue, + invidiousContinueAutoplay, getInvidiousContinueAutoplay, setInvidiousContinueAutoplay, - invidiousSpeed, - getInvidiousSpeed, - setInvidiousSpeed, + invidiousContinue, getInvidiousContinue, setInvidiousContinue, - invidiousQualityDash, - getInvidiousQualityDash, - setInvidiousQualityDash, + invidiousSpeed, getInvidiousSpeed, setInvidiousSpeed, - invidiousComments, - getInvidiousComments, - setInvidiousComments, + invidiousQualityDash, getInvidiousQualityDash, setInvidiousQualityDash, - invidiousCaptions, - getInvidiousCaptions, - setInvidiousCaptions, + invidiousComments, getInvidiousComments, setInvidiousComments, - invidiousRelatedVideos, - getInvidiousRelatedVideos, - setInvidiousRelatedVideos, + invidiousCaptions, getInvidiousCaptions, setInvidiousCaptions, - invidiousAnnotations, - getInvidiousAnnotations, - setInvidiousAnnotations, + invidiousRelatedVideos, getInvidiousRelatedVideos, setInvidiousRelatedVideos, - invidiousExtendDesc, - getInvidiousExtendDesc, - setInvidiousExtendDesc, + invidiousAnnotations, getInvidiousAnnotations, setInvidiousAnnotations, - invidiousVrMode, - getInvidiousVrMode, - setInvidiousVrMode, + invidiousExtendDesc, getInvidiousExtendDesc, setInvidiousExtendDesc, - invidiousSavePlayerPos, - getInvidiousSavePlayerPos, - setInvidiousSavePlayerPos, + invidiousVrMode, getInvidiousVrMode, setInvidiousVrMode, -} from './invidious-options.js'; -import { - pipedBufferGoal, - getPipedBufferGoal, - setPipedBufferGoal, + invidiousSavePlayerPos, getInvidiousSavePlayerPos, setInvidiousSavePlayerPos, - pipedComments, - getPipedComments, - setPipedComments, + getPipedBufferGoal, setPipedBufferGoal, - pipedDisableLBRY, - getPipedDisableLBRY, - setPipedDisableLBRY, + getPipedComments, setPipedComments, - pipedEnabledCodecs, - getPipedEnabledCodecs, - setPipedEnabledCodecs, + getPipedDisableLBRY, setPipedDisableLBRY, - pipedHomepage, - getPipedHomepage, - setPipedHomepage, + getPipedEnabledCodecs, setPipedEnabledCodecs, - pipedMinimizeDescription, - getPipedMinimizeDescription, - setPipedMinimizeDescription, + getPipedHomepage, setPipedHomepage, - pipedProxyLBRY, - getPipedProxyLBRY, - setPipedProxyLBRY, + getPipedMinimizeDescription, setPipedMinimizeDescription, - pipedQuality, - getPipedQuality, - setPipedQuality, + getPipedProxyLBRY, setPipedProxyLBRY, - pipedRegion, - getPipedRegion, - setPipedRegion, + getPipedQuality, setPipedQuality, - pipedSelectedSkip, - getPipedSelectedSkip, - setPipedSelectedSkip, + getPipedRegion, setPipedRegion, - pipedSponsorblock, - getPipedSponsorblock, - setPipedSponsorblock, + getPipedSelectedSkip, setPipedSelectedSkip, - pipedWatchHistory, - getPipedWatchHistory, - setPipedWatchHistory, + getPipedSponsorblock, setPipedSponsorblock, - pipedInit -} from './piped-options.js'; -import { - youtubeListen, - getYoutubeListen, - setYoutubeListen, - youtubeInit -} from './youtube-options.js'; + getPipedWatchHistory, setPipedWatchHistory, -window.browser = window.browser || window.chrome; + volume, getVolume, setVolume, + + youtubeAutoplay, getAutoplay, setAutoplay, + + getPipedMaterialSkipToLastPoint, setPipedMaterialSkipToLastPoint, + + initOptions +} from './options.js'; const targets = [ /^https?:\/\/(www\.|music\.|m\.|)youtube\.com(\/.*|$)/, @@ -164,7 +109,6 @@ let redirects = { const getRedirects = () => redirects; -let applyThemeToSites; function getCustomRedirects() { return { "invidious": { @@ -324,24 +268,6 @@ function setOnlyEmbeddedVideo(val) { } const getOnlyEmbeddedVideo = () => OnlyEmbeddedVideo; -let theme; - -let volume; -const getVolume = () => volume; -function setVolume(val) { - volume = val; - browser.storage.local.set({ youtubeVolume: volume }) - console.log("youtubeVolume: ", volume) -} - -let autoplay; -const getAutoplay = () => autoplay; -function setAutoplay(val) { - autoplay = val; - browser.storage.local.set({ youtubeAutoplay: autoplay }) - console.log("autoplay: ", autoplay) -} - let frontend; const getFrontend = () => frontend; function setFrontend(val) { @@ -687,7 +613,7 @@ function initInvidiousCookies() { prefs.volume = parseInt(volume); prefs.player_style = invidiousPlayerStyle; - prefs.autoplay = autoplay == 'true'; + prefs.youtubeAutoplay = youtubeAutoplay == 'true'; browser.cookies.set({ url: instanceUrl, @@ -698,10 +624,9 @@ function initInvidiousCookies() { ) } +let theme; async function init() { - await youtubeInit(); - await invidiousInit(); - await pipedInit(); + await initOptions(); return new Promise( resolve => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -712,8 +637,6 @@ async function init() { "disableYoutube", "enableYoutubeCustomSettings", "OnlyEmbeddedVideo", - "youtubeVolume", - "youtubeAutoplay", "youtubeRedirects", "youtubeFrontend", @@ -754,9 +677,6 @@ async function init() { theme = r.theme ?? 'dark'; - volume = r.youtubeVolume ?? 100; - autoplay = r.youtubeAutoplay ?? false; - OnlyEmbeddedVideo = r.OnlyEmbeddedVideo ?? 'both'; invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal]; @@ -919,6 +839,9 @@ export default { getPipedWatchHistory, setPipedWatchHistory, + getPipedMaterialSkipToLastPoint, + setPipedMaterialSkipToLastPoint, + getInvidiousNormalRedirectsChecks, setInvidiousNormalRedirectsChecks, diff --git a/src/pages/options/youtube/piped.js b/src/pages/options/youtube/piped.js index 0425ae79..015c97d8 100644 --- a/src/pages/options/youtube/piped.js +++ b/src/pages/options/youtube/piped.js @@ -17,9 +17,9 @@ function selectSkipModify(value, boolean) { youtubeHelper.setPipedSelectedSkip(selectSkip) } -let pipedSelectedSkipSponsorElement = document.getElementById("piped-selectedSkip-sponsor"); +let pipedSelectedSkipSponsorElement = document.getElementById("piped-selectedSkip-sponsors"); pipedSelectedSkipSponsorElement.addEventListener("change", - event => selectSkipModify('sponsor', event.target.checked) + event => selectSkipModify('sponsors', event.target.checked) ); let pipedSelectedSkipIntroElement = document.getElementById("piped-selectedSkip-intro"); @@ -122,12 +122,83 @@ pipedProxyLBRYElement.addEventListener("change", event => youtubeHelper.setPipedProxyLBRY(event.target.checked) ); +let pipedMaterialListenElement = document.getElementById("pipedMaterial-listen"); +pipedMaterialListenElement.addEventListener("change", + event => youtubeHelper.setYoutubeListen(event.target.checked) +); + +let pipedMaterialDisableLBRYElement = document.getElementById("pipedMaterial-disableLBRY"); +pipedMaterialDisableLBRYElement.addEventListener("change", + event => youtubeHelper.setPipedDisableLBRY(event.target.checked) +); + +let pipedMaterialProxyLBRYElement = document.getElementById("pipedMaterial-proxyLBRY"); +pipedMaterialProxyLBRYElement.addEventListener("change", + event => youtubeHelper.setPipedProxyLBRY(event.target.checked) +); + +let pipedMaterialSponsorblockElement = document.getElementById("pipedMaterial-sponsorblock"); +pipedMaterialSponsorblockElement.addEventListener("change", + event => youtubeHelper.setPipedSponsorblock(event.target.checked) +); + +let pipedMaterialSkipToLastPointElement = document.getElementById("pipedMaterial-skipToLastPoint"); +pipedMaterialSkipToLastPointElement.addEventListener("change", + event => youtubeHelper.setPipedMaterialSkipToLastPoint(event.target.checked) +); + + +let pipedMaterialSelectedSkipSponsorElement = document.getElementById("pipedMaterial-selectedSkip-sponsors"); +pipedMaterialSelectedSkipSponsorElement.addEventListener("change", + event => selectSkipModify('sponsors', event.target.checked) +); + +let pipedMaterialSelectedSkipIntroElement = document.getElementById("pipedMaterial-selectedSkip-intro"); +pipedMaterialSelectedSkipIntroElement.addEventListener("change", + event => selectSkipModify('intro', event.target.checked) +); + +let pipedMaterialSelectedSkipOutroElement = document.getElementById("pipedMaterial-selectedSkip-outro"); +pipedMaterialSelectedSkipOutroElement.addEventListener("change", + event => selectSkipModify('outro', event.target.checked) +); + +let pipedMaterialSelectedSkipPreviewElement = document.getElementById("pipedMaterial-selectedSkip-preview"); +pipedMaterialSelectedSkipPreviewElement.addEventListener("change", + event => selectSkipModify('preview', event.target.checked) +); + +let pipedMaterialSelectedSkipInteractionElement = document.getElementById("pipedMaterial-selectedSkip-interaction"); +pipedMaterialSelectedSkipInteractionElement.addEventListener("change", + event => selectSkipModify('interaction', event.target.checked) +); + +let pipedMaterialSelectedSkipSelfpromoElement = document.getElementById("pipedMaterial-selectedSkip-selfpromo"); +pipedMaterialSelectedSkipSelfpromoElement.addEventListener("change", + event => selectSkipModify('selfpromo', event.target.checked) +); + +let pipedMaterialSelectedSkipMusicOfftopicElement = document.getElementById("pipedMaterial-selectedSkip-music_offtopic"); +pipedMaterialSelectedSkipMusicOfftopicElement.addEventListener("change", + event => selectSkipModify('music_offtopic', event.target.checked) +); + +let pipedMaterialSelectedSkipPoiHighlightElement = document.getElementById("pipedMaterial-selectedSkip-poi_highlight"); +pipedMaterialSelectedSkipPoiHighlightElement.addEventListener("change", + event => selectSkipModify('poi_highlight', event.target.checked) +); + +let pipedMaterialSelectedSkipFillerElement = document.getElementById("pipedMaterial-selectedSkip-filler"); +pipedMaterialSelectedSkipFillerElement.addEventListener("change", + event => selectSkipModify('filler', event.target.checked) +); + let selectSkip = []; youtubeHelper.init().then(() => { pipedSponsorblockElement.checked = youtubeHelper.getPipedSponsorblock(); selectSkip = youtubeHelper.getPipedSelectedSkip(); - pipedSelectedSkipSponsorElement.checked = selectSkip.includes('sponsor'); + pipedSelectedSkipSponsorElement.checked = selectSkip.includes('sponsors'); pipedSelectedSkipIntroElement.checked = selectSkip.includes('intro'); pipedSelectedSkipOutroElement.checked = selectSkip.includes('outro'); pipedSelectedSkipPreviewElement.checked = selectSkip.includes('preview'); @@ -148,6 +219,20 @@ youtubeHelper.init().then(() => { pipedDisableLBRYElement.checked = youtubeHelper.getPipedDisableLBRY(); pipedProxyLBRYElement.checked = youtubeHelper.getPipedProxyLBRY(); + pipedMaterialListenElement.checked = youtubeHelper.getYoutubeListen(); + pipedMaterialDisableLBRYElement.checked = youtubeHelper.getPipedDisableLBRY(); + pipedMaterialProxyLBRYElement.checked = youtubeHelper.getPipedProxyLBRY(); + pipedMaterialSponsorblockElement.checked = youtubeHelper.getPipedSponsorblock() + pipedMaterialSkipToLastPointElement.checked = youtubeHelper.getPipedMaterialSkipToLastPoint(); + pipedMaterialSelectedSkipSponsorElement.checked = selectSkip.includes('sponsors'); + pipedMaterialSelectedSkipIntroElement.checked = selectSkip.includes('intro'); + pipedMaterialSelectedSkipOutroElement.checked = selectSkip.includes('outro'); + pipedMaterialSelectedSkipPreviewElement.checked = selectSkip.includes('preview'); + pipedMaterialSelectedSkipInteractionElement.checked = selectSkip.includes('interaction'); + pipedMaterialSelectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo'); + pipedMaterialSelectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic'); + pipedMaterialSelectedSkipPoiHighlightElement.checked = selectSkip.includes('poi_highlight'); + pipedMaterialSelectedSkipFillerElement.checked = selectSkip.includes('filler'); commonHelper.processDefaultCustomInstances( 'piped', diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html index 61350fc0..a88f9581 100644 --- a/src/pages/options/youtube/youtube.html +++ b/src/pages/options/youtube/youtube.html @@ -165,7 +165,7 @@

Autoplay Video

- +
@@ -767,7 +767,7 @@

Skip Sponsors

- +
@@ -1134,6 +1134,80 @@

+
+
+

Audio Only

+ +
+ +
+

Disable LBRY

+ +
+ +
+

Proxy LBRY videos

+ +
+ +
+

Enable Sponsorblock

+ +
+ +
+

Skip to the last watched point when encountering a video already seen

+ +
+ +
+

Skip Sponsors

+ +
+ +
+

Skip Intermission/Intro Animation

+ +
+ +
+

Skip Endcards/Credits

+ +
+ +
+

Skip Preview/Recap

+ +
+ +
+

Skip Interaction Reminder (Subscribe)

+ +
+ +
+

Skip Unpaid/Self Promotion

+ +
+ +
+

Skip Music: Non-Music Section

+ +
+ +
+

Skip Highlight

+ +
+ +
+

Skip Filler Tangent

+ +
+
+ +
+

Default Instances

diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js index e3b8c5e7..c6e6fb52 100644 --- a/src/pages/options/youtube/youtube.js +++ b/src/pages/options/youtube/youtube.js @@ -9,10 +9,8 @@ let freetubeYatteeDivElement = document.getElementById("freetube-yatte"); let customSettingsDivElement = document.getElementsByClassName("custom-settings"); function changeFrontendsSettings() { - console.log('changeFrontendsSettings()'); let frontend = youtubeFrontendElement.value; - console.log("customSettingsDivElement", customSettingsDivElement[0].style.display); if (enableYoutubeCustomSettingsElement.checked) for (const item of customSettingsDivElement) item.style.display = 'block'; else @@ -106,7 +104,7 @@ volumeElement.addEventListener("input", } ); -let autoplayElement = document.getElementById("invidious-autoplay"); +let autoplayElement = document.getElementById("invidious-youtubeAutoplay"); autoplayElement.addEventListener("change", event => youtubeHelper.setAutoplay(event.target.checked) ); @@ -169,7 +167,7 @@ youtubeHelper.init().then(() => { volumeValueElement.textContent = `${youtubeHelper.getVolume()}%`; OnlyEmbeddedVideoElement.value = youtubeHelper.getOnlyEmbeddedVideo(); bypassWatchOnYoutubeElement.checked = youtubeHelper.getBypassWatchOnYoutube(); - autoplayElement.value = youtubeHelper.getAutoplay(); + autoplayElement.checked = youtubeHelper.getAutoplay(); let frontend = youtubeHelper.getFrontend(); youtubeFrontendElement.value = frontend; changeFrontendsSettings(); -- cgit 1.4.1