From 786e40afb014d6cacee435e853c28ba971d958f5 Mon Sep 17 00:00:00 2001 From: syeopite Date: Wed, 12 Jun 2024 10:23:48 -0700 Subject: [PATCH] Add logic to show/hide transcripts without JS --- locales/en-US.json | 4 +++- src/invidious/routes/watch.cr | 12 ++++++++++++ src/invidious/views/watch.ecr | 9 ++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/locales/en-US.json b/locales/en-US.json index f5df304f..5d078169 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -503,5 +503,7 @@ "carousel_skip": "Skip the Carousel", "carousel_go_to": "Go to slide `x`", "video_description_show_transcript_section_label": "Transcripts", - "video_description_show_transcript_section_button": "Show transcript" + "video_description_show_transcript_section_button": "Show transcript", + "video_description_show_transcript_section_button_hide": "Hide transcript", + "error_transcripts_none_available": "No transcripts are available" } diff --git a/src/invidious/routes/watch.cr b/src/invidious/routes/watch.cr index e777b3f1..482112ac 100644 --- a/src/invidious/routes/watch.cr +++ b/src/invidious/routes/watch.cr @@ -38,6 +38,11 @@ module Invidious::Routes::Watch nojs ||= "0" nojs = nojs == "1" + show_transcripts = env.params.query["show_transcripts"]? + + show_transcripts ||= "0" + show_transcripts = show_transcripts == "1" + preferences = env.get("preferences").as(Preferences) user = env.get?("user").try &.as(User) @@ -156,6 +161,13 @@ module Invidious::Routes::Watch } captions = captions - preferred_captions + if show_transcripts + # Placeholder + transcript = true + else + transcript = nil + end + aspect_ratio = "16:9" thumbnail = "/vi/#{video.id}/maxres.jpg" diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr index 61ce62cf..0ca90a68 100644 --- a/src/invidious/views/watch.ecr +++ b/src/invidious/views/watch.ecr @@ -260,7 +260,14 @@ we're going to need to do it here in order to allow for translations. <% if captions %>

<%=HTML.escape(translate(locale, "video_description_show_transcript_section_label"))%>

- <%=HTML.escape(translate(locale, "video_description_show_transcript_section_button"))%> + <% if transcript %> + <% hide_transcripts_param = env.params.query.dup %> + <% hide_transcripts_param.delete_all("show_transcripts") %> + + <%=HTML.escape(translate(locale, "video_description_show_transcript_section_button_hide"))%> + <% else %> + <%=HTML.escape(translate(locale, "video_description_show_transcript_section_button"))%> + <% end %>
<% end %>