Merge b96ecbab4dd6f707b9f341f6f469c8c23949df59 into c88230067b7a3abbb569ac0938bf8d897c8340be

This commit is contained in:
Radostina (Radi for short) 2026-09-21 02:27:48 +00:00 committed by GitHub
commit 3f705d75f0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -662,7 +662,15 @@ private module Parsers
metadata = item_contents.dig("metadata", "lockupMetadataViewModel") metadata = item_contents.dig("metadata", "lockupMetadataViewModel")
title = metadata.dig("title", "content").as_s title = metadata.dig("title", "content").as_s
# Contains the views of the video and the published time of the video. # Contains the views of the video and the published time of the video.
metadata_parts = metadata.dig("metadata", "contentMetadataViewModel", "metadataRows", 0, "metadataParts").try &.as_a metadata_rows = metadata.dig?("metadata", "contentMetadataViewModel", "metadataRows").try &.as_a || Array(JSON::Any).new
view_count_text : String? = nil
published : Time = Time.local
view_count : Int64 = 0_i64
metadata_rows.each do |row|
metadata_parts = row.dig?("metadataParts").try &.as_a
next unless metadata_parts
view_count_text = metadata_parts.try &.find { |item| item["icon"]?.nil? && item.dig?("text", "content").try &.as_s.includes?("views") } view_count_text = metadata_parts.try &.find { |item| item["icon"]?.nil? && item.dig?("text", "content").try &.as_s.includes?("views") }
.try &.dig("text", "content").as_s .try &.dig("text", "content").as_s
@ -670,6 +678,10 @@ private module Parsers
.try { |item| decode_date(item.dig("text", "content").as_s) } || Time.local .try { |item| decode_date(item.dig("text", "content").as_s) } || Time.local
view_count = short_text_to_number(view_count_text || "0") view_count = short_text_to_number(view_count_text || "0")
if view_count_text
break
end
end
length = thumbnail_view_model.dig("overlays", 0, "thumbnailBottomOverlayViewModel", "badges", 0, "thumbnailBadgeViewModel", "text").try &.as_s length = thumbnail_view_model.dig("overlays", 0, "thumbnailBottomOverlayViewModel", "badges", 0, "thumbnailBadgeViewModel", "text").try &.as_s