This commit is contained in:
2025-12-15 00:52:22 +09:00
parent 43a55dbfcf
commit 0acf46630b
+13 -9
View File
@@ -27,7 +27,9 @@ namespace :nico do
end end
end end
PostTag.where(post_id: post.id, tag_id: to_remove.to_a).kept.find_each(&:discard!) PostTag.where(post_id: post.id, tag_id: to_remove.to_a).kept.find_each do |pt|
pt.discard_by!(nil)
end
end end
mysql_user = ENV['MYSQL_USER'] mysql_user = ENV['MYSQL_USER']
@@ -57,12 +59,14 @@ namespace :nico do
end end
post.save! post.save!
post.resized_thumbnail! post.resized_thumbnail!
sync_post_tags!(post, [Tag.tagme.id])
end end
kept_tags = post.tags.reload kept_tags = post.tags.reload
kept_non_nico_ids = kept_tags.where.not(category: 'nico').pluck(:id).to_set kept_non_nico_ids = kept_tags.where.not(category: 'nico').pluck(:id).to_set
desired_nico_ids = [] desired_nico_ids = []
desired_non_nico_ids = []
datum['tags'].each do |raw| datum['tags'].each do |raw|
name = "nico:#{ raw }" name = "nico:#{ raw }"
tag = Tag.find_or_initialize_by(name:) do |t| tag = Tag.find_or_initialize_by(name:) do |t|
@@ -70,17 +74,17 @@ namespace :nico do
end end
tag.save! if tag.new_record? tag.save! if tag.new_record?
desired_nico_ids << tag.id desired_nico_ids << tag.id
desired_nico_ids.concat(tag.linked_tags.pluck(:id)) unless tag.in?(kept_tags)
desired_non_nico_ids << tag.linked_tags.pluck(:id)
desired_nico_ids.concat(tag.linked_tags.pluck(:id))
end
end end
desired_nico_ids.uniq! desired_nico_ids.uniq!
desired_extra_ids = [] desired_all_ids = kept_non_nico_ids.to_a + desired_nico_ids
desired_extra_ids << Tag.tagme.id if kept_tags.size < 10 if kept_non_nico_ids.to_set != desired_non_nico_ids.to_set
desired_extra_ids << Tag.bot.id desired_all_ids << Tag.bot.id
desired_extra_ids.compact! end
desired_extra_ids.uniq!
desired_all_ids = kept_non_nico_ids.to_a + desired_nico_ids + desired_extra_ids
desired_all_ids.uniq! desired_all_ids.uniq!
sync_post_tags!(post, desired_all_ids) sync_post_tags!(post, desired_all_ids)