From 1b6d6fa8024f669288bdbb45124f26316fffb479 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Wed, 13 Apr 2022 22:59:29 +0300 Subject: Added more invidious settings #142 #147 --- src/assets/javascripts/helpers/youtube/options.js | 27 +++- src/assets/javascripts/helpers/youtube/youtube.js | 30 ++-- src/pages/options/youtube/invidious.js | 164 +++++++++++++--------- src/pages/options/youtube/youtube.html | 155 +++++++++++++++++++- 4 files changed, 292 insertions(+), 84 deletions(-) (limited to 'src') diff --git a/src/assets/javascripts/helpers/youtube/options.js b/src/assets/javascripts/helpers/youtube/options.js index a4abd363..2b0fa6c0 100644 --- a/src/assets/javascripts/helpers/youtube/options.js +++ b/src/assets/javascripts/helpers/youtube/options.js @@ -66,6 +66,21 @@ export const getInvidiousVrMode = () => invidiousVrMode; export let invidiousSavePlayerPos; export const getInvidiousSavePlayerPos = () => invidiousSavePlayerPos; +export let invidiousRegion; +export const getInvidiousRegion = () => invidiousRegion; + +export let invidiousDarkMode; +export const getInvidiousDarkMode = () => invidiousDarkMode; + +export let invidiousThinMode; +export const getInvidiousThinMode = () => invidiousThinMode; + +export let invidiousDefaultHome; +export const getInvidiousDefaultHome = () => invidiousDefaultHome; + +export let invidiousFeedMenuList; +export const getInvidiousFeedMenuList = () => invidiousFeedMenuList; + export let pipedBufferGoal; export const getPipedBufferGoal = () => pipedBufferGoal; @@ -105,7 +120,6 @@ export const getPipedWatchHistory = () => pipedWatchHistory; export let pipedMaterialSkipToLastPoint; export const getPipedMaterialSkipToLastPoint = () => pipedMaterialSkipToLastPoint; - export async function initOptions() { return new Promise( resolve => { @@ -131,6 +145,11 @@ export async function initOptions() { "invidiousExtendDesc", "invidiousVrMode", "invidiousSavePlayerPos", + "invidiousRegion", + "invidiousDarkMode", + "invidiousThinMode", + "invidiousDefaultHome", + "invidiousFeedMenuList", "pipedBufferGoal", "pipedComments", @@ -169,6 +188,12 @@ export async function initOptions() { invidiousVrMode = r.invidiousVrMode ?? true; invidiousSavePlayerPos = r.invidiousSavePlayerPos ?? false; + invidiousRegion = r.invidiousRegion ?? 'US'; + invidiousDarkMode = r.invidiousDarkMode ?? ''; + invidiousThinMode = r.invidiousThinMode ?? false; + invidiousDefaultHome = r.invidiousDefaultHome ?? 'Popular'; + invidiousFeedMenuList = r.invidiousFeedMenuList ?? ['Popular', 'Trending']; + pipedBufferGoal = r.pipedBufferGoal ?? 300; pipedComments = r.pipedComments ?? true; pipedDisableLBRY = r.pipedDisableLBRY ?? false; diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 4de189b6..4dd71480 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -20,6 +20,11 @@ import { invidiousExtendDesc, getInvidiousExtendDesc, invidiousVrMode, getInvidiousVrMode, invidiousSavePlayerPos, getInvidiousSavePlayerPos, + invidiousRegion, getInvidiousRegion, + invidiousDarkMode, getInvidiousDarkMode, + invidiousThinMode, getInvidiousThinMode, + invidiousDefaultHome, getInvidiousDefaultHome, + invidiousFeedMenuList, getInvidiousFeedMenuList, getPipedBufferGoal, getPipedComments, getPipedDisableLBRY, @@ -502,7 +507,6 @@ function initInvidiousCookies() { } prefs.local = invidiousAlwaysProxy; - prefs.dark_mode = theme; prefs.video_loop = invidiousVideoLoop; prefs.continue_autoplay = invidiousContinueAutoplay; prefs.continue = invidiousContinue; @@ -511,15 +515,8 @@ function initInvidiousCookies() { prefs.quality = invidiousQuality; prefs.quality_dash = invidiousQualityDash; - prefs.comments = []; - prefs.comments[0] = invidiousComments[0]; - prefs.comments[1] = invidiousComments[1]; - - - prefs.captions = []; - prefs.captions[0] = invidiousCaptions[0]; - prefs.captions[1] = invidiousCaptions[1]; - prefs.captions[2] = invidiousCaptions[2]; + prefs.comments = invidiousComments; + prefs.captions = invidiousCaptions; prefs.related_videos = invidiousRelatedVideos; prefs.annotations = invidiousAnnotations @@ -531,6 +528,12 @@ function initInvidiousCookies() { prefs.player_style = invidiousPlayerStyle; prefs.autoplay = youtubeAutoplay; + prefs.region = invidiousRegion; + prefs.dark_mode = invidiousDarkMode; + prefs.thin_mode = invidiousThinMode; + prefs.default_home = invidiousDefaultHome; + prefs.feed_menu = invidiousFeedMenuList; + browser.cookies.set({ url: instanceUrl, name: "PREFS", @@ -645,7 +648,12 @@ export default { getInvidiousQuality, getInvidiousPlayerStyle, getInvidiousVideoLoop, - + getInvidiousRegion, + getInvidiousDarkMode, + getInvidiousThinMode, + getInvidiousDefaultHome, + getInvidiousFeedMenuList, + getDisable, setDisable, diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js index d735c18b..d390ef87 100644 --- a/src/pages/options/youtube/invidious.js +++ b/src/pages/options/youtube/invidious.js @@ -1,98 +1,122 @@ import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let invidiousElement = document.getElementById('invidious'); -let invidiousAlwaysProxyElement = invidiousElement.getElementsByClassName("local")[0]; -let invidiousPlayerStyleElement = invidiousElement.getElementsByClassName("player_style")[0]; -let invidiousQualityElement = invidiousElement.getElementsByClassName("quality")[0]; -let invidiousVideoLoopElement = invidiousElement.getElementsByClassName("video_loop")[0]; -let invidiousContinueAutoplayElement = invidiousElement.getElementsByClassName("continue_autoplay")[0]; -let invidiousContinueElement = invidiousElement.getElementsByClassName("continue")[0]; -let youtubeListenElement = invidiousElement.getElementsByClassName("listen")[0]; -let invidiousSpeedElement = invidiousElement.getElementsByClassName("speed")[0]; -let invidiousQualityDashElement = invidiousElement.getElementsByClassName("quality_dash")[0]; -let invidiousRelatedVideoElement = invidiousElement.getElementsByClassName("related_videos")[0]; -let invidiousAnnotationsElement = invidiousElement.getElementsByClassName("annotations")[0]; -let invidiousExtendDescElement = invidiousElement.getElementsByClassName("extend_desc")[0]; -let invidiousVrModeElement = invidiousElement.getElementsByClassName("vr_mode")[0]; -let invidiousSavePlayerPosElement = invidiousElement.getElementsByClassName("save_player_pos")[0]; -let invidiousComments0Element = invidiousElement.getElementsByClassName("comments[0]")[0]; -let invidiousComments1Element = invidiousElement.getElementsByClassName("comments[1]")[0]; -let invidiousCaptions0Element = invidiousElement.getElementsByClassName("captions[0]")[0]; -let invidiousCaptions1Element = invidiousElement.getElementsByClassName("captions[1]")[0]; -let invidiousCaptions2Element = invidiousElement.getElementsByClassName("captions[2]")[0]; -let autoplayElement = invidiousElement.getElementsByClassName("youtubeAutoplay")[0]; -let volumeElement = invidiousElement.getElementsByClassName("volume")[0]; -let volumeValueElement = invidiousElement.getElementsByClassName("volume-value")[0]; - -volumeElement.addEventListener("input", () => volumeValueElement.textContent = `${volumeElement.value}%`); - -invidiousElement.addEventListener("change", async _ => { +let invidious = document.getElementById('invidious'); +let alwaysProxy = invidious.getElementsByClassName("local")[0]; +let playerStyle = invidious.getElementsByClassName("player_style")[0]; +let quality = invidious.getElementsByClassName("quality")[0]; +let videoLoop = invidious.getElementsByClassName("video_loop")[0]; +let continueAutoplay = invidious.getElementsByClassName("continue_autoplay")[0]; +let invidiousContinue = invidious.getElementsByClassName("continue")[0]; +let youtubeListen = invidious.getElementsByClassName("listen")[0]; +let speed = invidious.getElementsByClassName("speed")[0]; +let qualityDash = invidious.getElementsByClassName("quality_dash")[0]; +let relatedVideo = invidious.getElementsByClassName("related_videos")[0]; +let annotations = invidious.getElementsByClassName("annotations")[0]; +let extendDesc = invidious.getElementsByClassName("extend_desc")[0]; +let vrMode = invidious.getElementsByClassName("vr_mode")[0]; +let savePlayerPos = invidious.getElementsByClassName("save_player_pos")[0]; +let comments0 = invidious.getElementsByClassName("comments[0]")[0]; +let comments1 = invidious.getElementsByClassName("comments[1]")[0]; +let captions0 = invidious.getElementsByClassName("captions[0]")[0]; +let captions1 = invidious.getElementsByClassName("captions[1]")[0]; +let captions2 = invidious.getElementsByClassName("captions[2]")[0]; +let autoplay = invidious.getElementsByClassName("youtubeAutoplay")[0]; +let volume = invidious.getElementsByClassName("volume")[0]; +let volumeValue = invidious.getElementsByClassName("volume-value")[0]; +let region = invidious.getElementsByClassName("region")[0]; +let darkMode = invidious.getElementsByClassName("dark_mode")[0]; +let thin_mode = invidious.getElementsByClassName("thin_mode")[0]; +let default_home = invidious.getElementsByClassName("default_home")[0]; +let feed_menu0 = invidious.getElementsByClassName("feed_menu[0]")[0]; +let feed_menu1 = invidious.getElementsByClassName("feed_menu[1]")[0]; + +volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`); + +invidious.addEventListener("change", async _ => { console.log('changed invidious settings'); let commentsList = youtubeHelper.getInvidiousComments(); - commentsList[0] = invidiousComments0Element.value; - commentsList[1] = invidiousComments1Element.value; + commentsList[0] = comments0.value; + commentsList[1] = comments1.value; let captionsList = youtubeHelper.getInvidiousCaptions(); - captionsList[0] = invidiousCaptions0Element.value; - captionsList[1] = invidiousCaptions1Element.value; - captionsList[2] = invidiousCaptions2Element.value; + captionsList[0] = captions0.value; + captionsList[1] = captions1.value; + captionsList[2] = captions2.value; + + let feedMenuList = youtubeHelper.getInvidiousFeedMenuList(); + feedMenuList[0] = feed_menu0.value; + feedMenuList[1] = feed_menu1.value; await youtubeHelper.setYoutubeSettings({ - invidiousAlwaysProxy: invidiousAlwaysProxyElement.checked, - youtubeAutoplay: autoplayElement.checked, - invidiousPlayerStyle: invidiousPlayerStyleElement.value, - invidiousQuality: invidiousQualityElement.value, - invidiousVideoLoop: invidiousVideoLoopElement.checked, - invidiousContinueAutoplay: invidiousContinueAutoplayElement.checked, - invidiousContinue: invidiousContinueElement.checked, - youtubeListen: youtubeListenElement.checked, - invidiousSpeed: invidiousSpeedElement.value, - invidiousQualityDash: invidiousQualityDashElement.value, - youtubeVolume: volumeElement.value, + invidiousAlwaysProxy: alwaysProxy.checked, + youtubeAutoplay: autoplay.checked, + invidiousPlayerStyle: playerStyle.value, + invidiousQuality: quality.value, + invidiousVideoLoop: videoLoop.checked, + invidiousContinueAutoplay: continueAutoplay.checked, + invidiousContinue: invidiousContinue.checked, + youtubeListen: youtubeListen.checked, + invidiousSpeed: speed.value, + invidiousQualityDash: qualityDash.value, + youtubeVolume: volume.value, invidiousComments: commentsList, invidiousCaptions: captionsList, - invidiousRelatedVideos: invidiousRelatedVideoElement.checked, - invidiousAnnotations: invidiousAnnotationsElement.checked, - invidiousExtendDesc: invidiousExtendDescElement.checked, - invidiousVrMode: invidiousVrModeElement.checked, - invidiousSavePlayerPos: invidiousSavePlayerPosElement.checked + invidiousRelatedVideos: relatedVideo.checked, + invidiousAnnotations: annotations.checked, + invidiousExtendDesc: extendDesc.checked, + invidiousVrMode: vrMode.checked, + invidiousSavePlayerPos: savePlayerPos.checked, + + invidiousRegion: region.value, + invidiousDarkMode: darkMode.value, + invidiousThinMode: thin_mode.checked, + invidiousDefaultHome: default_home.value, + invidiousFeedMenuList: feedMenuList, }); init(); }); function init() { youtubeHelper.init().then(() => { - invidiousVideoLoopElement.checked = youtubeHelper.getInvidiousVideoLoop(); + videoLoop.checked = youtubeHelper.getInvidiousVideoLoop(); + + autoplay.checked = youtubeHelper.getAutoplay(); + + playerStyle.value = youtubeHelper.getInvidiousPlayerStyle(); - autoplayElement.checked = youtubeHelper.getAutoplay(); + continueAutoplay.checked = youtubeHelper.getInvidiousContinueAutoplay(); + invidiousContinue.checked = youtubeHelper.getInvidiousContinue(); + alwaysProxy.checked = youtubeHelper.getInvidiousAlwaysProxy(); + youtubeListen.checked = youtubeHelper.getYoutubeListen(); - invidiousPlayerStyleElement.value = youtubeHelper.getInvidiousPlayerStyle(); + speed.value = youtubeHelper.getInvidiousSpeed(); + quality.value = youtubeHelper.getInvidiousQuality(); + qualityDash.value = youtubeHelper.getInvidiousQualityDash(); - invidiousContinueAutoplayElement.checked = youtubeHelper.getInvidiousContinueAutoplay(); - invidiousContinueElement.checked = youtubeHelper.getInvidiousContinue(); - invidiousAlwaysProxyElement.checked = youtubeHelper.getInvidiousAlwaysProxy(); - youtubeListenElement.checked = youtubeHelper.getYoutubeListen(); + volume.value = youtubeHelper.getVolume(); + volumeValue.textContent = `${youtubeHelper.getVolume()}%`; - invidiousSpeedElement.value = youtubeHelper.getInvidiousSpeed(); - invidiousQualityElement.value = youtubeHelper.getInvidiousQuality(); - invidiousQualityDashElement.value = youtubeHelper.getInvidiousQualityDash(); + comments0.value = youtubeHelper.getInvidiousComments()[0]; + comments1.value = youtubeHelper.getInvidiousComments()[1]; - volumeElement.value = youtubeHelper.getVolume(); - volumeValueElement.textContent = `${youtubeHelper.getVolume()}%`; + captions0.value = youtubeHelper.getInvidiousCaptions()[0]; + captions1.value = youtubeHelper.getInvidiousCaptions()[1]; + captions2.value = youtubeHelper.getInvidiousCaptions()[2]; - invidiousComments0Element.value = youtubeHelper.getInvidiousComments()[0]; - invidiousComments1Element.value = youtubeHelper.getInvidiousComments()[1]; + relatedVideo.checked = youtubeHelper.getInvidiousRelatedVideos(); + annotations.checked = youtubeHelper.getInvidiousAnnotations(); + extendDesc.checked = youtubeHelper.getInvidiousExtendDesc(); + vrMode.checked = youtubeHelper.getInvidiousVrMode(); + savePlayerPos.checked = youtubeHelper.getInvidiousSavePlayerPos(); - invidiousCaptions0Element.value = youtubeHelper.getInvidiousCaptions()[0]; - invidiousCaptions1Element.value = youtubeHelper.getInvidiousCaptions()[1]; - invidiousCaptions2Element.value = youtubeHelper.getInvidiousCaptions()[2]; + region.value = youtubeHelper.getInvidiousRegion(); + darkMode.value = youtubeHelper.getInvidiousDarkMode(); + thin_mode.checked = youtubeHelper.getInvidiousThinMode(); + default_home.value = youtubeHelper.getInvidiousDefaultHome(); - invidiousRelatedVideoElement.checked = youtubeHelper.getInvidiousRelatedVideos(); - invidiousAnnotationsElement.checked = youtubeHelper.getInvidiousAnnotations(); - invidiousExtendDescElement.checked = youtubeHelper.getInvidiousExtendDesc(); - invidiousVrModeElement.checked = youtubeHelper.getInvidiousVrMode(); - invidiousSavePlayerPosElement.checked = youtubeHelper.getInvidiousSavePlayerPos(); + feed_menu0.value = youtubeHelper.getInvidiousFeedMenuList()[0]; + feed_menu1.value = youtubeHelper.getInvidiousFeedMenuList()[1]; commonHelper.processDefaultCustomInstances( 'invidious', diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html index e29fefbe..17018bfe 100644 --- a/src/pages/options/youtube/youtube.html +++ b/src/pages/options/youtube/youtube.html @@ -204,7 +204,7 @@
-

Autoplay Video

+

Autoplay

@@ -721,6 +721,119 @@ +
+

Select country

+ +
+

Player Style

+
+

Theme

+ +
+ +
+

Thin mode

+ +
+ +
+

Default homepage

+ +
+ +
+

Feed menu

+ +   + +
+
@@ -1311,4 +1462,4 @@ - + \ No newline at end of file -- cgit 1.4.1