diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-04-13 22:59:29 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-04-13 22:59:36 +0300 |
commit | 1b6d6fa8024f669288bdbb45124f26316fffb479 (patch) | |
tree | 54809ec25ef6eeba0126f6564a7701f74a5c1ba8 /src | |
parent | Added custom instance to FacilMap #139 (diff) | |
download | libredirect-1b6d6fa8024f669288bdbb45124f26316fffb479.zip |
Added more invidious settings #142 #147
Diffstat (limited to 'src')
-rw-r--r-- | src/assets/javascripts/helpers/youtube/options.js | 27 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 30 | ||||
-rw-r--r-- | src/pages/options/youtube/invidious.js | 164 | ||||
-rw-r--r-- | src/pages/options/youtube/youtube.html | 155 |
4 files changed, 292 insertions, 84 deletions
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 @@ </div> <div class="some-block option-block"> - <h4 data-localise="__MSG_autoplayVid__">Autoplay Video</h4> + <h4 data-localise="__MSG_autoplayVid__">Autoplay</h4> <input class="youtubeAutoplay" type="checkbox" /> </div> @@ -722,6 +722,119 @@ </div> <div class="some-block option-block"> + <h4 data-localise="__MSG_region__">Select country</h4> + <select class="region"> + <option value="AE">AE</option> + <option value="AR">AR</option> + <option value="AT">AT</option> + <option value="AU">AU</option> + <option value="AZ">AZ</option> + <option value="BA">BA</option> + <option value="BD">BD</option> + <option value="BE">BE</option> + <option value="BG">BG</option> + <option value="BH">BH</option> + <option value="BO">BO</option> + <option value="BR">BR</option> + <option value="BY">BY</option> + <option value="CA">CA</option> + <option value="CH">CH</option> + <option value="CL">CL</option> + <option value="CO">CO</option> + <option value="CR">CR</option> + <option value="CY">CY</option> + <option value="CZ">CZ</option> + <option value="DE">DE</option> + <option value="DK">DK</option> + <option value="DO">DO</option> + <option value="DZ">DZ</option> + <option value="EC">EC</option> + <option value="EE">EE</option> + <option value="EG">EG</option> + <option value="ES">ES</option> + <option value="FI">FI</option> + <option value="FR">FR</option> + <option value="GB">GB</option> + <option value="GE">GE</option> + <option value="GH">GH</option> + <option value="GR">GR</option> + <option value="GT">GT</option> + <option value="HK">HK</option> + <option value="HN">HN</option> + <option value="HR">HR</option> + <option value="HU">HU</option> + <option value="ID">ID</option> + <option value="IE">IE</option> + <option value="IL">IL</option> + <option value="IN">IN</option> + <option value="IQ">IQ</option> + <option value="IS">IS</option> + <option value="IT">IT</option> + <option value="JM">JM</option> + <option value="JO">JO</option> + <option value="JP">JP</option> + <option value="KE">KE</option> + <option value="KR">KR</option> + <option value="KW">KW</option> + <option value="KZ">KZ</option> + <option value="LB">LB</option> + <option value="LI">LI</option> + <option value="LK">LK</option> + <option value="LT">LT</option> + <option value="LU">LU</option> + <option value="LV">LV</option> + <option value="LY">LY</option> + <option value="MA">MA</option> + <option value="ME">ME</option> + <option value="MK">MK</option> + <option value="MT">MT</option> + <option value="MX">MX</option> + <option value="MY">MY</option> + <option value="NG">NG</option> + <option value="NI">NI</option> + <option value="NL">NL</option> + <option value="NO">NO</option> + <option value="NP">NP</option> + <option value="NZ">NZ</option> + <option value="OM">OM</option> + <option value="PA">PA</option> + <option value="PE">PE</option> + <option value="PG">PG</option> + <option value="PH">PH</option> + <option value="PK">PK</option> + <option value="PL">PL</option> + <option value="PR">PR</option> + <option value="PT">PT</option> + <option value="PY">PY</option> + <option value="QA">QA</option> + <option value="RO">RO</option> + <option value="RS">RS</option> + <option value="RU">RU</option> + <option value="SA">SA</option> + <option value="SE">SE</option> + <option value="SG">SG</option> + <option value="SI">SI</option> + <option value="SK">SK</option> + <option value="SN">SN</option> + <option value="SV">SV</option> + <option value="TH">TH</option> + <option value="TN">TN</option> + <option value="TR">TR</option> + <option value="TW">TW</option> + <option value="TZ">TZ</option> + <option value="UA">UA</option> + <option value="UG">UG</option> + <option value="US" selected="">US</option> + <option value="UY">UY</option> + <option value="VE">VE</option> + <option value="VN">VN</option> + <option value="YE">YE</option> + <option value="ZA">ZA</option> + <option value="ZW">ZW</option> + </select> + </div> + + <div class="some-block option-block"> <h4 data-localise="__MSG_playerStyle__">Player Style</h4> <select class="player_style"> <option value="invidious" data-localise="__MSG_invidious__">Invidious</option> @@ -729,6 +842,44 @@ </select> </div> + <div class="some-block option-block"> + <h4 data-localise="__MSG_theme__">Theme</h4> + <select class="dark_mode"> + <option value="" selected="">auto</option> + <option value="light">light</option> + <option value="dark">dark</option> + </select> + </div> + + <div class="some-block option-block"> + <h4 data-localise="__MSG_thin_mode__">Thin mode</h4> + <input class="thin_mode" type="checkbox" /> + </div> + + <div class="some-block option-block"> + <h4 data-localise="__MSG_default_home__">Default homepage</h4> + <select class="default_home"> + <option value="">Search</option> + <option value="Popular">Popular</option> + <option value="Trending">Trending</option> + </select> + </div> + + <div class="some-block option-block"> + <h4 data-localise="__MSG_feedMenu__">Feed menu</h4> + <select class="feed_menu[0]"> + <option value="">Search</option> + <option value="Popular">Popular</option> + <option value="Trending">Trending</option> + </select> + + <select class="feed_menu[1]"> + <option value="">Search</option> + <option value="Popular">Popular</option> + <option value="Trending">Trending</option> + </select> + </div> + </div> <hr> @@ -1311,4 +1462,4 @@ <script type="module" src="../../../assets/javascripts/localise.js"></script> </body> -</html> +</html> \ No newline at end of file |