summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2018-10-30 09:41:23 -0500
committerOmar Roth <omarroth@hotmail.com>2018-10-30 09:41:23 -0500
commite39dec97788344ad7741541707cc6d4bd91865b9 (patch)
treeaf4aa70aa3a1c4bc726362f7d3b591c854838a53
parent8794e26e67fc11ded8d83393a25c816784ec1d10 (diff)
downloadinvidious-e39dec97788344ad7741541707cc6d4bd91865b9.tar.gz
invidious-e39dec97788344ad7741541707cc6d4bd91865b9.tar.bz2
invidious-e39dec97788344ad7741541707cc6d4bd91865b9.zip
Add option to listen by default
-rw-r--r--src/invidious.cr10
-rw-r--r--src/invidious/users.cr12
-rw-r--r--src/invidious/videos.cr9
-rw-r--r--src/invidious/views/preferences.ecr5
-rw-r--r--src/invidious/views/watch.ecr2
5 files changed, 24 insertions, 14 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 1a8153e4..802e9233 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -243,10 +243,7 @@ get "/watch" do |env|
subscriptions ||= [] of String
params = process_video_params(env.params.query, preferences)
-
- if params[:listen]
- env.params.query.delete_all("listen")
- end
+ env.params.query.delete_all("listen")
begin
video = get_video(id, PG_DB, proxies)
@@ -880,6 +877,10 @@ post "/preferences" do |env|
autoplay ||= "off"
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 ||= 1.0
@@ -935,6 +936,7 @@ post "/preferences" do |env|
preferences = {
"video_loop" => video_loop,
"autoplay" => autoplay,
+ "listen" => listen,
"speed" => speed,
"quality" => quality,
"volume" => volume,
diff --git a/src/invidious/users.cr b/src/invidious/users.cr
index 4116e732..b354306f 100644
--- a/src/invidious/users.cr
+++ b/src/invidious/users.cr
@@ -70,10 +70,14 @@ class Preferences
JSON.mapping({
video_loop: Bool,
autoplay: Bool,
- speed: Float32,
- quality: String,
- volume: Int32,
- comments: {
+ listen: {
+ type: Bool,
+ default: false,
+ },
+ speed: Float32,
+ quality: String,
+ volume: Int32,
+ comments: {
type: Array(String),
default: ["youtube", ""],
converter: StringToArray,
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index 586ffe5d..26aa487e 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -708,6 +708,7 @@ end
def process_video_params(query, preferences)
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 }
quality = query["quality"]?
speed = query["speed"]?.try &.to_f?
@@ -716,6 +717,7 @@ def process_video_params(query, preferences)
if preferences
autoplay ||= preferences.autoplay.to_unsafe
+ listen ||= preferences.listen.to_unsafe
preferred_captions ||= preferences.captions
quality ||= preferences.quality
speed ||= preferences.speed
@@ -724,6 +726,7 @@ def process_video_params(query, preferences)
end
autoplay ||= 0
+ listen ||= 0
preferred_captions ||= [] of String
quality ||= "hd720"
speed ||= 1
@@ -731,6 +734,7 @@ def process_video_params(query, preferences)
volume ||= 100
autoplay = autoplay == 1
+ listen = listen == 1
video_loop = video_loop == 1
if query["t"]?
@@ -750,11 +754,6 @@ def process_video_params(query, preferences)
end
video_end ||= -1
- if query["listen"]? && (query["listen"] == "true" || query["listen"] == "1")
- listen = true
- end
- listen ||= false
-
raw = query["raw"]?.try &.to_i?
raw ||= 0
raw = raw == 1
diff --git a/src/invidious/views/preferences.ecr b/src/invidious/views/preferences.ecr
index aa70e4dc..be15a54d 100644
--- a/src/invidious/views/preferences.ecr
+++ b/src/invidious/views/preferences.ecr
@@ -24,6 +24,11 @@ function update_value(element) {
</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">
<label for="speed">Default speed: </label>
<select name="speed" id="speed">
<% {2.0, 1.5, 1.0, 0.5}.each do |option| %>
diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr
index 83120fb2..b286870d 100644
--- a/src/invidious/views/watch.ecr
+++ b/src/invidious/views/watch.ecr
@@ -35,7 +35,7 @@
<h1>
<%= HTML.escape(video.title) %>
<% if params[:listen] %>
- <a href="/watch?<%= env.params.query %>">
+ <a href="/watch?<%= env.params.query %>&listen=0">
<i class="icon ion-ios-videocam"></i>
</a>
<% else %>