summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@protonmail.com>2019-06-30 12:59:38 -0500
committerOmar Roth <omarroth@protonmail.com>2019-06-30 12:59:38 -0500
commit48ad744ebfca0437b1cb6d91c155e31dffe7f2b6 (patch)
tree791c5ad06f90d57fb08b0ba4e27b327c03ce5dc8
parent556d5b0ca55f3feedb6c59e07a92251c2646fdbc (diff)
downloadinvidious-48ad744ebfca0437b1cb6d91c155e31dffe7f2b6.tar.gz
invidious-48ad744ebfca0437b1cb6d91c155e31dffe7f2b6.tar.bz2
invidious-48ad744ebfca0437b1cb6d91c155e31dffe7f2b6.zip
Add support for default channel banners
-rw-r--r--src/invidious.cr34
-rw-r--r--src/invidious/channels.cr6
-rw-r--r--src/invidious/views/channel.ecr14
-rw-r--r--src/invidious/views/playlists.ecr14
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">