diff options
| author | Omar Roth <omarroth@protonmail.com> | 2019-06-30 12:59:38 -0500 |
|---|---|---|
| committer | Omar Roth <omarroth@protonmail.com> | 2019-06-30 12:59:38 -0500 |
| commit | 48ad744ebfca0437b1cb6d91c155e31dffe7f2b6 (patch) | |
| tree | 791c5ad06f90d57fb08b0ba4e27b327c03ce5dc8 | |
| parent | 556d5b0ca55f3feedb6c59e07a92251c2646fdbc (diff) | |
| download | invidious-48ad744ebfca0437b1cb6d91c155e31dffe7f2b6.tar.gz invidious-48ad744ebfca0437b1cb6d91c155e31dffe7f2b6.tar.bz2 invidious-48ad744ebfca0437b1cb6d91c155e31dffe7f2b6.zip | |
Add support for default channel banners
| -rw-r--r-- | src/invidious.cr | 34 | ||||
| -rw-r--r-- | src/invidious/channels.cr | 6 | ||||
| -rw-r--r-- | src/invidious/views/channel.ecr | 14 | ||||
| -rw-r--r-- | src/invidious/views/playlists.ecr | 14 |
4 files changed, 39 insertions, 29 deletions
diff --git a/src/invidious.cr b/src/invidious.cr index ad985924..5c054c4c 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -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 diff --git a/src/invidious/channels.cr b/src/invidious/channels.cr index 1fd94ca4..598ca294 100644 --- a/src/invidious/channels.cr +++ b/src/invidious/channels.cr @@ -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" diff --git a/src/invidious/views/channel.ecr b/src/invidious/views/channel.ecr index cccd349c..17365b68 100644 --- a/src/invidious/views/channel.ecr +++ b/src/invidious/views/channel.ecr @@ -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"> diff --git a/src/invidious/views/playlists.ecr b/src/invidious/views/playlists.ecr index 28de9ec2..0a4b6e68 100644 --- a/src/invidious/views/playlists.ecr +++ b/src/invidious/views/playlists.ecr @@ -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"> |
