commit
20ddd3c025
|
@ -1363,6 +1363,10 @@ post "/preferences" do |env|
|
|||
dark_mode ||= "off"
|
||||
dark_mode = dark_mode == "on"
|
||||
|
||||
thin_mode = env.params.body["thin_mode"]?.try &.as(String)
|
||||
thin_mode ||= "off"
|
||||
thin_mode = thin_mode == "on"
|
||||
|
||||
max_results = env.params.body["max_results"]?.try &.as(String).to_i
|
||||
max_results ||= 40
|
||||
|
||||
|
@ -1380,6 +1384,7 @@ post "/preferences" do |env|
|
|||
"quality" => quality,
|
||||
"volume" => volume,
|
||||
"dark_mode" => dark_mode,
|
||||
"thin_mode" => thin_mode,
|
||||
"max_results" => max_results,
|
||||
"sort" => sort,
|
||||
"latest_only" => latest_only,
|
||||
|
|
|
@ -24,6 +24,7 @@ DEFAULT_USER_PREFERENCES = Preferences.from_json({
|
|||
"quality" => "hd720",
|
||||
"volume" => 100,
|
||||
"dark_mode" => false,
|
||||
"thin_mode " => false,
|
||||
"max_results" => 40,
|
||||
"sort" => "published",
|
||||
"latest_only" => false,
|
||||
|
@ -148,6 +149,7 @@ class User
|
|||
})
|
||||
end
|
||||
|
||||
# TODO: Migrate preferences so this will not be nilable
|
||||
class Preferences
|
||||
JSON.mapping({
|
||||
video_loop: Bool,
|
||||
|
@ -156,6 +158,11 @@ class Preferences
|
|||
quality: String,
|
||||
volume: Int32,
|
||||
dark_mode: Bool,
|
||||
thin_mode: {
|
||||
type: Bool,
|
||||
nilable: true,
|
||||
default: false,
|
||||
},
|
||||
max_results: Int32,
|
||||
sort: String,
|
||||
latest_only: Bool,
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
<div class="pure-u-1 pure-u-md-1-4">
|
||||
<div class="h-box">
|
||||
<a style="width:100%;" href="/watch?v=<%= video.id %>">
|
||||
<% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %>
|
||||
<% else %>
|
||||
<img style="width:100%;" src="https://i.ytimg.com/vi/<%= video.id %>/mqdefault.jpg"/>
|
||||
<% end %>
|
||||
<p><%= video.title %></p>
|
||||
</a>
|
||||
<p>
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
<div class="pure-u-1 pure-u-md-1-4">
|
||||
<div class="h-box">
|
||||
<a style="width:100%;" href="/watch?v=<%= video.id %>">
|
||||
<% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %>
|
||||
<% else %>
|
||||
<img style="width:100%;" src="https://i.ytimg.com/vi/<%= video.id %>/mqdefault.jpg"/>
|
||||
<% end %>
|
||||
<p><%= video.title %></p>
|
||||
</a>
|
||||
<p>
|
||||
|
|
|
@ -53,6 +53,11 @@ function update_value(element) {
|
|||
<input name="dark_mode" id="dark_mode" type="checkbox" <% if user.preferences.dark_mode %>checked<% end %>>
|
||||
</div>
|
||||
|
||||
<div class="pure-control-group">
|
||||
<label for="thin_mode">Thin mode: </label>
|
||||
<input name="thin_mode" id="thin_mode" type="checkbox" <% if user.preferences.thin_mode %>checked<% end %>>
|
||||
</div>
|
||||
|
||||
<legend>Subscription preferences</legend>
|
||||
<div class="pure-control-group">
|
||||
<label for="max_results">Number of videos shown in feed: </label>
|
||||
|
|
|
@ -280,7 +280,10 @@ String.prototype.supplant = function (o) {
|
|||
<% rvs.each do |rv| %>
|
||||
<% if rv.has_key?("id") %>
|
||||
<a href="/watch?v=<%= rv["id"] %>">
|
||||
<img style="width:100%;" alt="thumbnail" src="<%= rv["iurlmq"] %>">
|
||||
<% if preferences && preferences.thin_mode %>
|
||||
<% else %>
|
||||
<img style="width:100%;" src="<%= rv["iurlmq"] %>">
|
||||
<% end %>
|
||||
<p style="width:100%"><%= rv["title"] %></p>
|
||||
<p>
|
||||
<b style="width: 100%"><%= rv["author"] %></b>
|
||||
|
|
Loading…
Reference in New Issue