diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/comments.cr | 10 | ||||
| -rw-r--r-- | src/invidious/videos.cr | 3 | ||||
| -rw-r--r-- | src/invidious/views/components/player.ecr | 7 | ||||
| -rw-r--r-- | src/invidious/views/watch.ecr | 4 |
4 files changed, 18 insertions, 6 deletions
diff --git a/src/invidious/comments.cr b/src/invidious/comments.cr index a8bbf74b..13ebbd73 100644 --- a/src/invidious/comments.cr +++ b/src/invidious/comments.cr @@ -195,8 +195,14 @@ def fetch_youtube_comments(id, db, cursor, format, locale, thin_mode, region, so end if node_replies && !response["commentRepliesContinuation"]? - reply_count = (node_replies["moreText"]["simpleText"]? || node_replies["moreText"]["runs"]?.try &.[0]?.try &.["text"]?) - .try &.as_s.gsub(/\D/, "").to_i? || 1 + if node_replies["moreText"]? + reply_count = (node_replies["moreText"]["simpleText"]? || node_replies["moreText"]["runs"]?.try &.[0]?.try &.["text"]?) + .try &.as_s.gsub(/\D/, "").to_i? || 1 + elsif node_replies["viewReplies"]? + reply_count = node_replies["viewReplies"]["buttonRenderer"]["text"]?.try &.["runs"][1]?.try &.["text"]?.try &.as_s.to_i? || 1 + else + reply_count = 1 + end continuation = node_replies["continuations"]?.try &.as_a[0]["nextContinuationData"]["continuation"].as_s continuation ||= "" diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index b96f4288..95d9a80c 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -534,7 +534,8 @@ struct Video end def live_now - info["videoDetails"]["isLiveContent"]?.try &.as_bool || false + info["microformat"]?.try &.["playerMicroformatRenderer"]? + .try &.["liveBroadcastDetails"]?.try &.["isLiveNow"]?.try &.as_bool || false end def is_listed diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr index a898a41f..cff3e60a 100644 --- a/src/invidious/views/components/player.ecr +++ b/src/invidious/views/components/player.ecr @@ -24,9 +24,9 @@ <% end %> <% end %> - <% preferred_captions.each_with_index do |caption, i| %> + <% preferred_captions.each do |caption| %> <track kind="captions" src="/api/v1/captions/<%= video.id %>?label=<%= caption.name.simpleText %>&hl=<%= env.get("preferences").as(Preferences).locale %>" - label="<%= caption.name.simpleText %>" <% if i == 0 %>default<% end %>> + label="<%= caption.name.simpleText %>"> <% end %> <% captions.each do |caption| %> @@ -42,7 +42,8 @@ "aspect_ratio" => aspect_ratio, "title" => video.title, "description" => HTML.escape(video.short_description), - "thumbnail" => thumbnail + "thumbnail" => thumbnail, + "preferred_caption_found" => !preferred_captions.empty? }.to_pretty_json %> </script> diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr index 924914a5..a86e23b2 100644 --- a/src/invidious/views/watch.ecr +++ b/src/invidious/views/watch.ecr @@ -81,6 +81,10 @@ <h3> <%= video.premiere_timestamp.try { |t| translate(locale, "Premieres in `x`", recode_date((t - Time.utc).ago, locale)) } %> </h3> + <% elsif video.live_now %> + <h3> + <%= video.premiere_timestamp.try { |t| translate(locale, "Started streaming `x` ago", recode_date((Time.utc - t).ago, locale)) } %> + </h3> <% end %> </div> |
