mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-31 12:42:09 +00:00 
			
		
		
		
	Add option to listen by default
This commit is contained in:
		| @@ -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, | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -23,6 +23,11 @@ function update_value(element) { | ||||
|                 <input name="autoplay" id="autoplay" type="checkbox" <% if user.preferences.autoplay %>checked<% end %>> | ||||
|             </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"> | ||||
|   | ||||
| @@ -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 %> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Omar Roth
					Omar Roth