fix md5 on e621 posts changing

This commit is contained in:
Dylan Knutson
2025-06-26 19:12:10 +00:00
parent 308232e01d
commit 2deeb2bd78

View File

@@ -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"]