mirror of
https://github.com/iv-org/invidious.git
synced 2024-12-28 17:07:53 +01:00
Force refresh after receiving PubSub notification
This commit is contained in:
parent
0a8e20fd60
commit
5567e2843d
@ -2732,7 +2732,7 @@ post "/feed/webhook/:token" do |env|
|
||||
published = Time.parse_rfc3339(entry.xpath_node("published").not_nil!.content)
|
||||
updated = Time.parse_rfc3339(entry.xpath_node("updated").not_nil!.content)
|
||||
|
||||
video = get_video(id, PG_DB, proxies, region: nil)
|
||||
video = get_video(id, PG_DB, proxies, force_refresh: true)
|
||||
|
||||
# Deliver notifications to `/api/v1/auth/notifications`
|
||||
payload = {
|
||||
|
@ -817,12 +817,12 @@ end
|
||||
class VideoRedirect < Exception
|
||||
end
|
||||
|
||||
def get_video(id, db, proxies = {} of String => Array({ip: String, port: Int32}), refresh = true, region = nil)
|
||||
def get_video(id, db, proxies = {} of String => Array({ip: String, port: Int32}), refresh = true, region = nil, force_refresh = false)
|
||||
if db.query_one?("SELECT EXISTS (SELECT true FROM videos WHERE id = $1)", id, as: Bool) && !region
|
||||
video = db.query_one("SELECT * FROM videos WHERE id = $1", id, as: Video)
|
||||
|
||||
# If record was last updated over 10 minutes ago, refresh (expire param in response lasts for 6 hours)
|
||||
if refresh && Time.now - video.updated > 10.minutes
|
||||
if (refresh && Time.now - video.updated > 10.minutes) || force_refresh
|
||||
begin
|
||||
video = fetch_video(id, proxies, region)
|
||||
video_array = video.to_a
|
||||
|
Loading…
Reference in New Issue
Block a user