fix md5 on e621 posts changing
This commit is contained in:
@@ -33,31 +33,36 @@ class Domain::E621::TagUtil
|
||||
e621_post.caused_by_entry_id = caused_by_entry.id if caused_by_entry
|
||||
|
||||
e621_md5 = T.cast(post_json["file"]["md5"], String)
|
||||
|
||||
force_new_file = false
|
||||
if e621_post.md5 && e621_post.md5 != e621_md5
|
||||
logger.warn(
|
||||
"md5 changed for post: #{e621_post.md5.to_s.bold} => #{e621_md5.to_s.bold}",
|
||||
)
|
||||
e621_post.prev_md5s ||= []
|
||||
e621_post.prev_md5s << e621_post.md5
|
||||
e621_post.file = nil
|
||||
force_new_file = true
|
||||
end
|
||||
|
||||
file =
|
||||
e621_post.file ||
|
||||
e621_post.build_file do |new_file|
|
||||
if !force_new_file && (file = e621_post.file)
|
||||
file
|
||||
else
|
||||
e621_post.files.build do |new_file|
|
||||
logger.info(
|
||||
"building file for post #{e621_post.id} / #{e621_post.e621_id}",
|
||||
)
|
||||
new_file = T.cast(new_file, Domain::PostFile)
|
||||
new_file.enqueue_job_after_save(
|
||||
Domain::E621::Job::StaticFileJob,
|
||||
{ post_file: new_file, caused_by_entry: },
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
file.url_str =
|
||||
begin
|
||||
file = post_json["file"]
|
||||
file["url"] || md5_to_file_url(e621_md5, file["ext"])
|
||||
file_json = post_json["file"]
|
||||
file_json["url"] || md5_to_file_url(e621_md5, file_json["ext"])
|
||||
end
|
||||
e621_post.md5 = e621_md5
|
||||
e621_post.posted_at = post_json["created_at"]
|
||||
|
||||
Reference in New Issue
Block a user