pull/4339/merge
syeopite 2024-04-27 00:52:39 +02:00 zatwierdzone przez GitHub
commit 526b1b9194
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
3 zmienionych plików z 17 dodań i 0 usunięć

Wyświetl plik

@ -27,6 +27,12 @@ class Invidious::Jobs::StatisticsRefreshJob < Invidious::Jobs::BaseJob
"playback" => {} of String => Int64 | Float64,
}
# Latches the playback success stats from before statistics gets refreshed
# Used to ensure that the object won't get reset back to an empty object
LATCHED_PLAYBACK_STATS = {
"playback" => {} of String => Int64 | Float64,
}
private getter db : DB::Database
def initialize(@db, @software_config : Hash(String, String))
@ -65,6 +71,7 @@ class Invidious::Jobs::StatisticsRefreshJob < Invidious::Jobs::BaseJob
}
# Reset playback requests tracker
LATCHED_PLAYBACK_STATS["playback"] = STATISTICS["playback"].as(Hash(String, Int64 | Float64))
STATISTICS["playback"] = {} of String => Int64 | Float64
end
end

Wyświetl plik

@ -19,6 +19,8 @@ module Invidious::Routes::API::V1::Misc
else
tracker["ratio"] = (success_count / (total_requests)).round(2)
end
else
return (Invidious::Jobs::StatisticsRefreshJob::STATISTICS.merge Invidious::Jobs::StatisticsRefreshJob::LATCHED_PLAYBACK_STATS).to_json
end
end

Wyświetl plik

@ -89,6 +89,14 @@ def extract_video_info(video_id : String)
}
else
reason = nil
# Although technically not a call to /videoplayback, because we are counting requests
# in which YouTube returned a "this content is not available" video as a failure,
# we should also count requests that returned the correct video as a success
# in order to ensure a correct and accurate ratio
playback_stats = get_playback_statistic()
playback_stats["totalRequests"] += 1
playback_stats["successfulRequests"] += 1
end
# Don't fetch the next endpoint if the video is unavailable.