summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious/config.cr1
-rw-r--r--src/invidious/routes/preferences.cr5
-rw-r--r--src/invidious/user/preferences.cr1
-rw-r--r--src/invidious/videos.cr6
-rw-r--r--src/invidious/views/preferences.ecr5
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">