summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2018-07-16 19:31:49 -0500
committerOmar Roth <omarroth@hotmail.com>2018-07-16 19:31:49 -0500
commita6292d956d9189866aeeed73182b3780d76337a1 (patch)
tree93f8a11d049c98877ba84b7f03770480bd93350a /src
parentcae8e1b8832f42e513a6c9ab5c9895a31ad8bcd9 (diff)
downloadinvidious-a6292d956d9189866aeeed73182b3780d76337a1.tar.gz
invidious-a6292d956d9189866aeeed73182b3780d76337a1.tar.bz2
invidious-a6292d956d9189866aeeed73182b3780d76337a1.zip
Add option to change max_results
Diffstat (limited to 'src')
-rw-r--r--src/invidious.cr21
-rw-r--r--src/invidious/helpers.cr26
-rw-r--r--src/invidious/views/preferences.ecr6
3 files changed, 33 insertions, 20 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 7254d9f5..1428e95d 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -683,7 +683,6 @@ get "/preferences" do |env|
referer ||= "/preferences"
if referer.size > 64
- puts "nope"
referer = "/preferences"
end
@@ -725,13 +724,17 @@ post "/preferences" do |env|
dark_mode ||= "off"
dark_mode = dark_mode == "on"
+ max_results = env.params.body["max_results"]?.try &.as(String).to_i
+ max_results ||= 40
+
preferences = {
- "video_loop" => video_loop,
- "autoplay" => autoplay,
- "speed" => speed,
- "quality" => quality,
- "volume" => volume,
- "dark_mode" => dark_mode,
+ "video_loop" => video_loop,
+ "autoplay" => autoplay,
+ "speed" => speed,
+ "quality" => quality,
+ "volume" => volume,
+ "dark_mode" => dark_mode,
+ "max_results" => max_results,
}.to_json
PG_DB.exec("UPDATE users SET preferences = $1 WHERE email = $2", preferences, user.email)
@@ -747,7 +750,9 @@ get "/feed/subscriptions" do |env|
if user
user = user.as(User)
- max_results = env.params.query["maxResults"]?.try &.to_i || 40
+ max_results = user.preferences.max_results
+ max_results ||= env.params.query["maxResults"]?.try &.to_i
+ max_results ||= 40
page = env.params.query["page"]?.try &.to_i
page ||= 1
diff --git a/src/invidious/helpers.cr b/src/invidious/helpers.cr
index 81c025a3..36e48adb 100644
--- a/src/invidious/helpers.cr
+++ b/src/invidious/helpers.cr
@@ -18,12 +18,13 @@ macro rendered(filename)
end
DEFAULT_USER_PREFERENCES = Preferences.from_json({
- "video_loop" => false,
- "autoplay" => false,
- "speed" => 1.0,
- "quality" => "hd720",
- "volume" => 100,
- "dark_mode" => false,
+ "video_loop" => false,
+ "autoplay" => false,
+ "speed" => 1.0,
+ "quality" => "hd720",
+ "volume" => 100,
+ "dark_mode" => false,
+ "max_results" => 40,
}.to_json)
class Config
@@ -136,12 +137,13 @@ end
class Preferences
JSON.mapping({
- video_loop: Bool,
- autoplay: Bool,
- speed: Float32,
- quality: String,
- volume: Int32,
- dark_mode: Bool,
+ video_loop: Bool,
+ autoplay: Bool,
+ speed: Float32,
+ quality: String,
+ volume: Int32,
+ dark_mode: Bool,
+ max_results: Int32,
})
end
diff --git a/src/invidious/views/preferences.ecr b/src/invidious/views/preferences.ecr
index c38b14d7..10e58a4b 100644
--- a/src/invidious/views/preferences.ecr
+++ b/src/invidious/views/preferences.ecr
@@ -52,6 +52,12 @@ function update_value(element) {
<input name="dark_mode" id="dark_mode" type="checkbox" <% if user.preferences.dark_mode %>checked<% end %>>
</div>
+ <legend>Subscription preferences</legend>
+ <div class="pure-control-group">
+ <label for="max_results">Number of videos shown in feed: </label>
+ <input name="max_results" id="max_results" type="number" value="<%= user.preferences.max_results %>">
+ </div>
+
<div class="pure-controls">
<button type="submit" class="pure-button pure-button-primary">Save preferences</button>
</div>