diff options
Diffstat (limited to 'src/invidious.cr')
| -rw-r--r-- | src/invidious.cr | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/invidious.cr b/src/invidious.cr index 0913a137..ce818b69 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -215,6 +215,13 @@ get "/watch" do |env| audio_streams = video.audio_streams(adaptive_fmts) captions = video.captions + if preferences + preferred_captions = captions.select { |caption| preferences.captions.includes? caption["name"]["simpleText"] } + preferred_captions.sort_by! { |caption| preferences.captions.index(caption["name"]["simpleText"]).not_nil! } + + captions = captions - preferred_captions + end + preferred_captions ||= [] of JSON::Any video.description = fill_links(video.description, "https", "www.youtube.com") video.description = add_alt_links(video.description) @@ -713,6 +720,11 @@ post "/preferences" do |env| comments = env.params.body["comments"]? comments ||= "youtube" + captions_0 = env.params.body["captions_0"]?.try &.as(String) || "" + captions_1 = env.params.body["captions_1"]?.try &.as(String) || "" + captions_2 = env.params.body["captions_2"]?.try &.as(String) || "" + captions = [captions_0, captions_1, captions_2] + redirect_feed = env.params.body["redirect_feed"]?.try &.as(String) redirect_feed ||= "off" redirect_feed = redirect_feed == "on" @@ -750,6 +762,7 @@ post "/preferences" do |env| "quality" => quality, "volume" => volume, "comments" => comments, + "captions" => captions, "redirect_feed" => redirect_feed, "dark_mode" => dark_mode, "thin_mode" => thin_mode, |
