summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>2024-07-09 13:25:18 -0400
committerChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>2024-07-09 14:43:14 -0400
commit911dad69358a299b77e14303e570d48960aa0f1d (patch)
tree6fbe82a4ab8dd00803fa551777c9aa09ad2b3027 /src
parent1ae14cc22468ce6e0eb794752b113604b1d5582d (diff)
downloadinvidious-911dad69358a299b77e14303e570d48960aa0f1d.tar.gz
invidious-911dad69358a299b77e14303e570d48960aa0f1d.tar.bz2
invidious-911dad69358a299b77e14303e570d48960aa0f1d.zip
Channel: parse subscriber count and channel banner
Diffstat (limited to 'src')
-rw-r--r--src/invidious/channels/about.cr15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/invidious/channels/about.cr b/src/invidious/channels/about.cr
index b5a27667..edaf5c12 100644
--- a/src/invidious/channels/about.cr
+++ b/src/invidious/channels/about.cr
@@ -72,6 +72,7 @@ def get_about_info(ucid, locale) : AboutChannel
# Raises a KeyError on failure.
banners = initdata["header"]["c4TabbedHeaderRenderer"]?.try &.["banner"]?.try &.["thumbnails"]?
+ banners ||= initdata.dig?("header", "pageHeaderRenderer", "content", "pageHeaderViewModel", "banner", "imageBannerViewModel", "image", "sources")
banner = banners.try &.[-1]?.try &.["url"].as_s?
# if banner.includes? "channels/c4/default_banner"
@@ -147,9 +148,17 @@ def get_about_info(ucid, locale) : AboutChannel
end
end
- sub_count = initdata
- .dig?("header", "c4TabbedHeaderRenderer", "subscriberCountText", "simpleText").try &.as_s?
- .try { |text| short_text_to_number(text.split(" ")[0]).to_i32 } || 0
+ sub_count = 0
+
+ if (metadata_rows = initdata.dig?("header", "pageHeaderRenderer", "content", "pageHeaderViewModel", "metadata", "contentMetadataViewModel", "metadataRows").try &.as_a)
+ metadata_rows.each do |row|
+ metadata_part = row.dig?("metadataParts").try &.as_a.find { |i| i.dig?("text", "content").try &.as_s.includes?("subscribers") }
+ if !metadata_part.nil?
+ sub_count = short_text_to_number(metadata_part.dig("text", "content").as_s.split(" ")[0]).to_i32
+ end
+ break if sub_count != 0
+ end
+ end
AboutChannel.new(
ucid: ucid,