diff options
| author | bbielsa <bgb7@njit.edu> | 2021-10-25 19:50:17 -0400 |
|---|---|---|
| committer | Emilien Devos <contact@emiliendevos.be> | 2021-12-15 19:37:55 +0100 |
| commit | a6a0bbf39834003b9ee26392e626828c05209010 (patch) | |
| tree | 1558c26f2f8cbd785869b23db2c1ec430789e2b7 | |
| parent | 7f3ef1229722adba65ec60caa3d209d18b47fd2e (diff) | |
| download | invidious-a6a0bbf39834003b9ee26392e626828c05209010.tar.gz invidious-a6a0bbf39834003b9ee26392e626828c05209010.tar.bz2 invidious-a6a0bbf39834003b9ee26392e626828c05209010.zip | |
Add remember_position field to the Preferences and VideoPreferences structs, and add a checkbox in the preferences page to toggle it
| -rw-r--r-- | src/invidious/config.cr | 1 | ||||
| -rw-r--r-- | src/invidious/routes/preferences.cr | 5 | ||||
| -rw-r--r-- | src/invidious/user/preferences.cr | 1 | ||||
| -rw-r--r-- | src/invidious/videos.cr | 6 | ||||
| -rw-r--r-- | src/invidious/views/preferences.ecr | 5 |
5 files changed, 18 insertions, 0 deletions
diff --git a/src/invidious/config.cr b/src/invidious/config.cr index 578e31fd..bdd670f1 100644 --- a/src/invidious/config.cr +++ b/src/invidious/config.cr @@ -42,6 +42,7 @@ struct ConfigPreferences property volume : Int32 = 100 property vr_mode : Bool = true property show_nick : Bool = true + property remember_position : Bool = false def to_tuple {% begin %} diff --git a/src/invidious/routes/preferences.cr b/src/invidious/routes/preferences.cr index edf9e1e7..3bf7e5da 100644 --- a/src/invidious/routes/preferences.cr +++ b/src/invidious/routes/preferences.cr @@ -70,6 +70,10 @@ module Invidious::Routes::PreferencesRoute vr_mode ||= "off" vr_mode = vr_mode == "on" + remember_position = env.params.body["remember_position"]?.try &.as(String) + remember_position ||= "off" + remember_position = remember_position == "on" + show_nick = env.params.body["show_nick"]?.try &.as(String) show_nick ||= "off" show_nick = show_nick == "on" @@ -165,6 +169,7 @@ module Invidious::Routes::PreferencesRoute extend_desc: extend_desc, vr_mode: vr_mode, show_nick: show_nick, + remember_position: remember_position, }.to_json).to_json if user = env.get? "user" diff --git a/src/invidious/user/preferences.cr b/src/invidious/user/preferences.cr index c15876f5..f2d089b4 100644 --- a/src/invidious/user/preferences.cr +++ b/src/invidious/user/preferences.cr @@ -53,6 +53,7 @@ struct Preferences property video_loop : Bool = CONFIG.default_user_preferences.video_loop property extend_desc : Bool = CONFIG.default_user_preferences.extend_desc property volume : Int32 = CONFIG.default_user_preferences.volume + property remember_position : Bool = CONFIG.default_user_preferences.remember_position module BoolToString def self.to_json(value : String, json : JSON::Builder) diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index 621ff386..bffd564d 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -246,6 +246,7 @@ struct VideoPreferences property video_start : Float64 | Int32 property volume : Int32 property vr_mode : Bool + property remember_position : Bool end struct Video @@ -1090,6 +1091,7 @@ def process_video_params(query, preferences) extend_desc = query["extend_desc"]?.try { |q| (q == "true" || q == "1").to_unsafe } volume = query["volume"]?.try &.to_i? vr_mode = query["vr_mode"]?.try { |q| (q == "true" || q == "1").to_unsafe } + remember_position = query["remember_position"]?.try { |q| (q == "true" || q == "1").to_unsafe } if preferences # region ||= preferences.region @@ -1110,6 +1112,7 @@ def process_video_params(query, preferences) extend_desc ||= preferences.extend_desc.to_unsafe volume ||= preferences.volume vr_mode ||= preferences.vr_mode.to_unsafe + remember_position ||= preferences.remember_position.to_unsafe end annotations ||= CONFIG.default_user_preferences.annotations.to_unsafe @@ -1129,6 +1132,7 @@ def process_video_params(query, preferences) extend_desc ||= CONFIG.default_user_preferences.extend_desc.to_unsafe volume ||= CONFIG.default_user_preferences.volume vr_mode ||= CONFIG.default_user_preferences.vr_mode.to_unsafe + remember_position ||= CONFIG.default_user_preferences.remember_position.to_unsafe annotations = annotations == 1 autoplay = autoplay == 1 @@ -1140,6 +1144,7 @@ def process_video_params(query, preferences) video_loop = video_loop == 1 extend_desc = extend_desc == 1 vr_mode = vr_mode == 1 + remember_position = remember_position == 1 if CONFIG.disabled?("dash") && quality == "dash" quality = "high" @@ -1190,6 +1195,7 @@ def process_video_params(query, preferences) video_start: video_start, volume: volume, vr_mode: vr_mode, + remember_position: remember_position, }) return params diff --git a/src/invidious/views/preferences.ecr b/src/invidious/views/preferences.ecr index 6bd9e348..603c337b 100644 --- a/src/invidious/views/preferences.ecr +++ b/src/invidious/views/preferences.ecr @@ -116,6 +116,11 @@ <input name="vr_mode" id="vr_mode" type="checkbox" <% if preferences.vr_mode %>checked<% end %>> </div> + <div class="pure-control-group"> + <label for="remember_position">Remember the current video time:</label> + <input name="remember_position" id="remember_position" type="checkbox" <% if preferences.remember_position %>checked<% end %>> + </div> + <legend><%= translate(locale, "preferences_category_visual") %></legend> <div class="pure-control-group"> |
