summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious/videos/parser.cr83
1 files changed, 2 insertions, 81 deletions
diff --git a/src/invidious/videos/parser.cr b/src/invidious/videos/parser.cr
index 5444088b..ed313fe5 100644
--- a/src/invidious/videos/parser.cr
+++ b/src/invidious/videos/parser.cr
@@ -158,85 +158,6 @@ def try_fetch_streaming_data(id : String, client_config : YoutubeAPI::ClientConf
end
end
-def parse_published_string(item)
- time_text = item["publishedTimeText"]?
- time_string = nil
- if !time_text.nil?
- time_string = time_text["simpleText"]?
- end
- if !time_string.nil? && time_string.to_s.ends_with?("minute ago")
- time = Time.utc.to_unix - 60
- end
- if !time_string.nil? && time_string.to_s.ends_with?("minutes ago") && !time_string.to_s.starts_with?("Streamed")
- minutes = time_string.to_s.rchop(" minutes ago").to_i
- time = Time.utc.to_unix - 60*minutes
- end
- if !time_string.nil? && time_string.to_s.ends_with?("minutes ago") && time_string.to_s.starts_with?("Streamed")
- minutes = time_string.to_s.lchop("Streamed ").rchop(" minutes ago").to_i
- time = Time.utc.to_unix - 60*minutes
- end
- if !time_string.nil? && time_string.to_s.ends_with?("hour ago")
- time = Time.utc.to_unix - 3600
- end
- if !time_string.nil? && time_string.to_s.ends_with?("hours ago") && !time_string.to_s.starts_with?("Streamed")
- hours = time_string.to_s.rchop(" hours ago").to_i
- time = Time.utc.to_unix - 3600*hours
- end
- if !time_string.nil? && time_string.to_s.ends_with?("hours ago") && time_string.to_s.starts_with?("Streamed")
- hours = time_string.to_s.lchop("Streamed ").rchop(" hours ago").to_i
- time = Time.utc.to_unix - 3600*hours
- end
- if !time_string.nil? && time_string.to_s.ends_with?("day ago")
- time = Time.utc.to_unix - 86400
- end
- if !time_string.nil? && time_string.to_s.ends_with?("days ago") && !time_string.to_s.starts_with?("Streamed")
- days = time_string.to_s.rchop(" days ago").to_i
- time = Time.utc.to_unix - 86400*days
- end
- if !time_string.nil? && time_string.to_s.ends_with?("days ago") && time_string.to_s.starts_with?("Streamed")
- days = time_string.to_s.lchop("Streamed ").rchop(" days ago").to_i
- time = Time.utc.to_unix - 86400*days
- end
- if !time_string.nil? && time_string.to_s.ends_with?("week ago")
- time = Time.utc.to_unix - 604800
- end
- if !time_string.nil? && time_string.to_s.ends_with?("weeks ago") && !time_string.to_s.starts_with?("Streamed")
- weeks = time_string.to_s.rchop(" weeks ago").to_i
- time = Time.utc.to_unix - 604800*weeks
- end
- if !time_string.nil? && time_string.to_s.ends_with?("weeks ago") && time_string.to_s.starts_with?("Streamed")
- weeks = time_string.to_s.lchop("Streamed ").rchop(" weeks ago").to_i
- time = Time.utc.to_unix - 604800*weeks
- end
- if !time_string.nil? && time_string.to_s.ends_with?("month ago")
- time = Time.utc.to_unix - 2629743
- end
- if !time_string.nil? && time_string.to_s.ends_with?("months ago") && !time_string.to_s.starts_with?("Streamed")
- months = time_string.to_s.rchop(" months ago").to_i
- time = Time.utc.to_unix - 2629743*months
- end
- if !time_string.nil? && time_string.to_s.ends_with?("months ago") && time_string.to_s.starts_with?("Streamed")
- months = time_string.to_s.lchop("Streamed ").rchop(" months ago").to_i
- time = Time.utc.to_unix - 2629743*months
- end
- if !time_string.nil? && time_string.to_s.ends_with?("year ago")
- time = Time.utc.to_unix - 31556926
- end
- if !time_string.nil? && time_string.to_s.ends_with?("years ago") && !time_string.to_s.starts_with?("Streamed")
- years = time_string.to_s.rchop(" years ago").to_i
- time = Time.utc.to_unix - 31556926*years
- end
- if !time_string.nil? && time_string.to_s.ends_with?("years ago") && time_string.to_s.starts_with?("Streamed")
- years = time_string.to_s.lchop("Streamed ").rchop(" years ago").to_i
- time = Time.utc.to_unix - 31556926*years
- end
- if time_string.nil?
- time = nil
- end
-
- return time
-end
-
def parse_video_info(video_id : String, player_response : Hash(String, JSON::Any), proxy_region : String? = nil) : Hash(String, JSON::Any)
# Top level elements
@@ -315,8 +236,8 @@ 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"]?
- time = parse_published_string(item)
- published1 = JSON::Any.new(time.to_s)
+ time = decode_date(item["publishedTimeText"].to_s)
+ published1 = JSON::Any.new(time.to_unix.to_s)
related_video = parse_related_video(item, published1)
related << JSON::Any.new(related_video) if related_video
end