Add option to listen by default

pull/733/head
Omar Roth 6 years ago
parent 8794e26e67
commit e39dec9778

@ -243,10 +243,7 @@ get "/watch" do |env|
subscriptions ||= [] of String subscriptions ||= [] of String
params = process_video_params(env.params.query, preferences) params = process_video_params(env.params.query, preferences)
if params[:listen]
env.params.query.delete_all("listen") env.params.query.delete_all("listen")
end
begin begin
video = get_video(id, PG_DB, proxies) video = get_video(id, PG_DB, proxies)
@ -880,6 +877,10 @@ post "/preferences" do |env|
autoplay ||= "off" autoplay ||= "off"
autoplay = autoplay == "on" autoplay = autoplay == "on"
listen = env.params.body["listen"]?.try &.as(String)
listen ||= "off"
listen = listen == "on"
speed = env.params.body["speed"]?.try &.as(String).to_f? speed = env.params.body["speed"]?.try &.as(String).to_f?
speed ||= 1.0 speed ||= 1.0
@ -935,6 +936,7 @@ post "/preferences" do |env|
preferences = { preferences = {
"video_loop" => video_loop, "video_loop" => video_loop,
"autoplay" => autoplay, "autoplay" => autoplay,
"listen" => listen,
"speed" => speed, "speed" => speed,
"quality" => quality, "quality" => quality,
"volume" => volume, "volume" => volume,

@ -70,6 +70,10 @@ class Preferences
JSON.mapping({ JSON.mapping({
video_loop: Bool, video_loop: Bool,
autoplay: Bool, autoplay: Bool,
listen: {
type: Bool,
default: false,
},
speed: Float32, speed: Float32,
quality: String, quality: String,
volume: Int32, volume: Int32,

@ -708,6 +708,7 @@ end
def process_video_params(query, preferences) def process_video_params(query, preferences)
autoplay = query["autoplay"]?.try &.to_i? autoplay = query["autoplay"]?.try &.to_i?
listen = query["listen"]? && (query["listen"] == "true" || query["listen"] == "1").to_unsafe
preferred_captions = query["subtitles"]?.try &.split(",").map { |a| a.downcase } preferred_captions = query["subtitles"]?.try &.split(",").map { |a| a.downcase }
quality = query["quality"]? quality = query["quality"]?
speed = query["speed"]?.try &.to_f? speed = query["speed"]?.try &.to_f?
@ -716,6 +717,7 @@ def process_video_params(query, preferences)
if preferences if preferences
autoplay ||= preferences.autoplay.to_unsafe autoplay ||= preferences.autoplay.to_unsafe
listen ||= preferences.listen.to_unsafe
preferred_captions ||= preferences.captions preferred_captions ||= preferences.captions
quality ||= preferences.quality quality ||= preferences.quality
speed ||= preferences.speed speed ||= preferences.speed
@ -724,6 +726,7 @@ def process_video_params(query, preferences)
end end
autoplay ||= 0 autoplay ||= 0
listen ||= 0
preferred_captions ||= [] of String preferred_captions ||= [] of String
quality ||= "hd720" quality ||= "hd720"
speed ||= 1 speed ||= 1
@ -731,6 +734,7 @@ def process_video_params(query, preferences)
volume ||= 100 volume ||= 100
autoplay = autoplay == 1 autoplay = autoplay == 1
listen = listen == 1
video_loop = video_loop == 1 video_loop = video_loop == 1
if query["t"]? if query["t"]?
@ -750,11 +754,6 @@ def process_video_params(query, preferences)
end end
video_end ||= -1 video_end ||= -1
if query["listen"]? && (query["listen"] == "true" || query["listen"] == "1")
listen = true
end
listen ||= false
raw = query["raw"]?.try &.to_i? raw = query["raw"]?.try &.to_i?
raw ||= 0 raw ||= 0
raw = raw == 1 raw = raw == 1

@ -23,6 +23,11 @@ function update_value(element) {
<input name="autoplay" id="autoplay" type="checkbox" <% if user.preferences.autoplay %>checked<% end %>> <input name="autoplay" id="autoplay" type="checkbox" <% if user.preferences.autoplay %>checked<% end %>>
</div> </div>
<div class="pure-control-group">
<label for="listen">Listen by default: </label>
<input name="listen" id="listen" type="checkbox" <% if user.preferences.listen %>checked<% end %>>
</div>
<div class="pure-control-group"> <div class="pure-control-group">
<label for="speed">Default speed: </label> <label for="speed">Default speed: </label>
<select name="speed" id="speed"> <select name="speed" id="speed">

@ -35,7 +35,7 @@
<h1> <h1>
<%= HTML.escape(video.title) %> <%= HTML.escape(video.title) %>
<% if params[:listen] %> <% if params[:listen] %>
<a href="/watch?<%= env.params.query %>"> <a href="/watch?<%= env.params.query %>&listen=0">
<i class="icon ion-ios-videocam"></i> <i class="icon ion-ios-videocam"></i>
</a> </a>
<% else %> <% else %>

Loading…
Cancel
Save