Playlists: Use subtitle when author is missing (#4025)
This commit is contained in:
commit
bb14f79496
2 changed files with 11 additions and 1 deletions
|
@ -89,6 +89,7 @@ struct Playlist
|
||||||
property views : Int64
|
property views : Int64
|
||||||
property updated : Time
|
property updated : Time
|
||||||
property thumbnail : String?
|
property thumbnail : String?
|
||||||
|
property subtitle : String?
|
||||||
|
|
||||||
def to_json(offset, json : JSON::Builder, video_id : String? = nil)
|
def to_json(offset, json : JSON::Builder, video_id : String? = nil)
|
||||||
json.object do
|
json.object do
|
||||||
|
@ -100,6 +101,7 @@ struct Playlist
|
||||||
json.field "author", self.author
|
json.field "author", self.author
|
||||||
json.field "authorId", self.ucid
|
json.field "authorId", self.ucid
|
||||||
json.field "authorUrl", "/channel/#{self.ucid}"
|
json.field "authorUrl", "/channel/#{self.ucid}"
|
||||||
|
json.field "subtitle", self.subtitle
|
||||||
|
|
||||||
json.field "authorThumbnails" do
|
json.field "authorThumbnails" do
|
||||||
json.array do
|
json.array do
|
||||||
|
@ -356,6 +358,8 @@ def fetch_playlist(plid : String)
|
||||||
updated = Time.utc
|
updated = Time.utc
|
||||||
video_count = 0
|
video_count = 0
|
||||||
|
|
||||||
|
subtitle = extract_text(initial_data.dig?("header", "playlistHeaderRenderer", "subtitle"))
|
||||||
|
|
||||||
playlist_info["stats"]?.try &.as_a.each do |stat|
|
playlist_info["stats"]?.try &.as_a.each do |stat|
|
||||||
text = stat["runs"]?.try &.as_a.map(&.["text"].as_s).join("") || stat["simpleText"]?.try &.as_s
|
text = stat["runs"]?.try &.as_a.map(&.["text"].as_s).join("") || stat["simpleText"]?.try &.as_s
|
||||||
next if !text
|
next if !text
|
||||||
|
@ -397,6 +401,7 @@ def fetch_playlist(plid : String)
|
||||||
views: views,
|
views: views,
|
||||||
updated: updated,
|
updated: updated,
|
||||||
thumbnail: thumbnail,
|
thumbnail: thumbnail,
|
||||||
|
subtitle: subtitle,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,12 @@
|
||||||
</b>
|
</b>
|
||||||
<% else %>
|
<% else %>
|
||||||
<b>
|
<b>
|
||||||
<a href="/channel/<%= playlist.ucid %>"><%= author %></a> |
|
<% if !author.empty? %>
|
||||||
|
<a href="/channel/<%= playlist.ucid %>"><%= author %></a> |
|
||||||
|
<% elsif !playlist.subtitle.nil? %>
|
||||||
|
<% subtitle = playlist.subtitle || "" %>
|
||||||
|
<span><%= HTML.escape(subtitle[0..subtitle.rindex(" • ") || subtitle.size]) %></span> |
|
||||||
|
<% end %>
|
||||||
<%= translate_count(locale, "generic_videos_count", playlist.video_count) %> |
|
<%= translate_count(locale, "generic_videos_count", playlist.video_count) %> |
|
||||||
<%= translate(locale, "Updated `x` ago", recode_date(playlist.updated, locale)) %>
|
<%= translate(locale, "Updated `x` ago", recode_date(playlist.updated, locale)) %>
|
||||||
</b>
|
</b>
|
||||||
|
|
Loading…
Reference in a new issue