Redo splay handling to be per update type

This commit is contained in:
Alexander Olofsson 2024-09-16 20:44:22 +02:00
parent 9a3cad4293
commit a91b52ea83
Signed by: ace
GPG key ID: D439C9470CB04C73

View file

@ -155,9 +155,8 @@ module FicTracker::Models
def ensure_fully_loaded def ensure_fully_loaded
return backend.load_full_story(self) unless id return backend.load_full_story(self) unless id
refresh_content refresh_content(splay: true)
refresh_metadata refresh_metadata(splay: true)
apply_splay!
full_load = true full_load = true
if chapters && chapters.size > 0 if chapters && chapters.size > 0
@ -208,8 +207,11 @@ module FicTracker::Models
[backend_name, slug, name].join('_').downcase.gsub(/[^[[:alnum:]]-_]/, '_').gsub(/__+/, '_').gsub(/^_|_$/, '') [backend_name, slug, name].join('_').downcase.gsub(/[^[[:alnum:]]-_]/, '_').gsub(/__+/, '_').gsub(/^_|_$/, '')
end end
def refresh_metadata def refresh_metadata(splay: false)
refresh_metadata! if backend && needs_metadata_refresh? return unless backend && needs_metadata_refresh?
self.last_metadata_refresh += rand(0..METADATA_REFRESH_INTERVAL) / 10 if splay
refresh_metadata!
end end
def refresh_metadata! def refresh_metadata!
@ -217,8 +219,11 @@ module FicTracker::Models
backend.load_story(self) backend.load_story(self)
end end
def refresh_content def refresh_content(splay: false)
refresh_content! if backend && needs_content_refresh? return unless backend && needs_content_refresh?
self.last_content_refresh += rand(0..CONTENT_REFRESH_INTERVAL) / 10 if splay
refresh_content!
# chapters.each(&:refresh_content) # chapters.each(&:refresh_content)
end end
@ -228,11 +233,6 @@ module FicTracker::Models
# chapters.each(&:refresh_content!) # chapters.each(&:refresh_content!)
end end
def apply_splay!(max: CONTENT_REFRESH_INTERVAL / 10)
self.last_metadata_refresh += rand(0..max)
self.last_content_refresh += rand(0..max)
end
def needs_metadata_refresh? def needs_metadata_refresh?
# return true if id && authors.empty? # return true if id && authors.empty?