Add support for default channel banners

This commit is contained in:
Omar Roth 2019-06-30 12:59:38 -05:00
parent 556d5b0ca5
commit 48ad744ebf
No known key found for this signature in database
GPG Key ID: B8254FB7EC3D37F2
4 changed files with 39 additions and 29 deletions

View File

@ -3565,23 +3565,25 @@ get "/api/v1/channels/:ucid" do |env|
json.field "authorBanners" do
json.array do
qualities = {
{width: 2560, height: 424},
{width: 2120, height: 351},
{width: 1060, height: 175},
}
qualities.each do |quality|
json.object do
json.field "url", channel.banner.gsub("=w1060", "=w#{quality[:width]}")
json.field "width", quality[:width]
json.field "height", quality[:height]
if channel.banner
qualities = {
{width: 2560, height: 424},
{width: 2120, height: 351},
{width: 1060, height: 175},
}
qualities.each do |quality|
json.object do
json.field "url", channel.banner.not_nil!.gsub("=w1060", "=w#{quality[:width]}")
json.field "width", quality[:width]
json.field "height", quality[:height]
end
end
end
json.object do
json.field "url", channel.banner.rchop("=w1060-fcrop64=1,00005a57ffffa5a8-nd-c0xffffffff-rj-k-no")
json.field "width", 512
json.field "height", 288
json.object do
json.field "url", channel.banner.not_nil!.rchop("=w1060-fcrop64=1,00005a57ffffa5a8-nd-c0xffffffff-rj-k-no")
json.field "width", 512
json.field "height", 288
end
end
end
end
@ -3592,7 +3594,7 @@ get "/api/v1/channels/:ucid" do |env|
qualities.each do |quality|
json.object do
json.field "url", channel.author_thumbnail.gsub("/s100-", "/s#{quality}-")
json.field "url", channel.author_thumbnail.gsub("=s100-", "=s#{quality}-")
json.field "width", quality
json.field "height", quality
end

View File

@ -114,7 +114,7 @@ struct AboutChannel
auto_generated: Bool,
author_url: String,
author_thumbnail: String,
banner: String,
banner: String?,
description_html: String,
paid: Bool,
total_views: Int64,
@ -654,6 +654,10 @@ def get_about_info(ucid, locale)
banner = about.xpath_node(%q(//div[@id="gh-banner"]/style)).not_nil!.content
banner = "https:" + banner.match(/background-image: url\((?<url>[^)]+)\)/).not_nil!["url"]
if banner.includes? "channels/c4/default_banner"
banner = nil
end
description_html = about.xpath_node(%q(//div[contains(@class,"about-description")])).try &.to_s || ""
paid = about.xpath_node(%q(//meta[@itemprop="paid"])).not_nil!["content"] == "True"

View File

@ -3,13 +3,15 @@
<link rel="alternate" type="application/rss+xml" title="RSS" href="/feed/channel/<%= channel.ucid %>" />
<% end %>
<div class="h-box">
<img style="width:100%" src="/ggpht<%= URI.parse(channel.banner.gsub("=w1060", "=w1280")).full_path %>">
</div>
<% if channel.banner %>
<div class="h-box">
<img style="width:100%" src="/ggpht<%= URI.parse(channel.banner.not_nil!.gsub("=w1060", "=w1280")).full_path %>">
</div>
<div class="h-box">
<hr>
</div>
<div class="h-box">
<hr>
</div>
<% end %>
<div class="pure-g h-box">
<div class="pure-u-2-3">

View File

@ -2,13 +2,15 @@
<title><%= channel.author %> - Invidious</title>
<% end %>
<div class="h-box">
<img style="width:100%" src="/ggpht<%= URI.parse(channel.banner.gsub("=w1060", "=w1280")).full_path %>">
</div>
<% if channel.banner %>
<div class="h-box">
<img style="width:100%" src="/ggpht<%= URI.parse(channel.banner.not_nil!.gsub("=w1060", "=w1280")).full_path %>">
</div>
<div class="h-box">
<hr>
</div>
<div class="h-box">
<hr>
</div>
<% end %>
<div class="pure-g h-box">
<div class="pure-u-2-3">