summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRadoslavL <rlelchev@abv.bg>2023-11-14 09:43:52 +0200
committerRadoslavL <rlelchev@abv.bg>2023-11-14 09:43:52 +0200
commit2a6a32e667f5e9ed868c275531ff63c113429321 (patch)
treeb9736a982262d2bc72be362133149b8a365de62b /src
parent50da6cf3e760950b35c16600104980f0b909e8dc (diff)
downloadinvidious-2a6a32e667f5e9ed868c275531ff63c113429321.tar.gz
invidious-2a6a32e667f5e9ed868c275531ff63c113429321.tar.bz2
invidious-2a6a32e667f5e9ed868c275531ff63c113429321.zip
Fixed an issue
Diffstat (limited to 'src')
-rw-r--r--src/invidious/jsonify/api_v1/video_json.cr2
-rw-r--r--src/invidious/videos/parser.cr13
2 files changed, 8 insertions, 7 deletions
diff --git a/src/invidious/jsonify/api_v1/video_json.cr b/src/invidious/jsonify/api_v1/video_json.cr
index 79f3d46f..f5450f3f 100644
--- a/src/invidious/jsonify/api_v1/video_json.cr
+++ b/src/invidious/jsonify/api_v1/video_json.cr
@@ -246,7 +246,7 @@ module Invidious::JSONify::APIv1
json.field "viewCountText", rv["short_view_count"]?
json.field "viewCount", rv["view_count"]?.try &.empty? ? nil : rv["view_count"].to_i64
json.field "published", rv["published"]?
- json.field "publishedTimeText", rv["publishedText"]?
+ json.field "publishedTimeText", translate(locale, "`x` ago", rv["publishedText"].to_s)
end
end
end
diff --git a/src/invidious/videos/parser.cr b/src/invidious/videos/parser.cr
index 929d492f..b96f4279 100644
--- a/src/invidious/videos/parser.cr
+++ b/src/invidious/videos/parser.cr
@@ -6,7 +6,7 @@ require "json"
#
# TODO: "compactRadioRenderer" (Mix) and
# TODO: Use a proper struct/class instead of a hacky JSON object
-def parse_related_video(related : JSON::Any, published : String? = nil, publishedText : String? = nil) : Hash(String, JSON::Any)?
+def parse_related_video(related : JSON::Any, published : String? = nil) : Hash(String, JSON::Any)?
return nil if !related["videoId"]?
# The compact renderer has video length in seconds, where the end
@@ -36,6 +36,8 @@ def parse_related_video(related : JSON::Any, published : String? = nil, publishe
LOGGER.trace("parse_related_video: Found \"watchNextEndScreenRenderer\" container")
+ publishedText = related["publishedTimeText"]["simpleText"].to_s
+
# TODO: when refactoring video types, make a struct for related videos
# or reuse an existing type, if that fits.
return {
@@ -48,7 +50,7 @@ def parse_related_video(related : JSON::Any, published : String? = nil, publishe
"short_view_count" => JSON::Any.new(short_view_count || "0"),
"author_verified" => JSON::Any.new(author_verified),
"published" => JSON::Any.new(published || ""),
- "publishedText" => JSON::Any.new(translate(locale, "`x` ago", recode_date(video.published, locale)) || ""),
+ "publishedText" => JSON::Any.new(publishedText || ""),
}
end
@@ -237,14 +239,13 @@ def parse_video_info(video_id : String, player_response : Hash(String, JSON::Any
.dig?("secondaryResults", "secondaryResults", "results")
secondary_results.try &.as_a.each do |element|
if item = element["compactVideoRenderer"]?
- if rv_published_time_text = item["publishedTimeText"]?
- rv_published_time_text = rv_published_time_text.as_s
- rv_decoded_time = decode_date(rv_published_time_text)
+ if rv_published_time_text = item["publishedTimeText"]["simpleText"]?
+ rv_decoded_time = decode_date(rv_published_time_text.to_s)
rv_published_timestamp = rv_decoded_time.to_unix.to_s
else
rv_published_timestamp = nil
end
- related_video = parse_related_video(item, published: rv_published_timestamp, publishedText: rv_published_time_text)
+ related_video = parse_related_video(item, published: rv_published_timestamp)
related << JSON::Any.new(related_video) if related_video
end
end