Fix #4940: DanbooruBot retiring banned_artist implications.

This commit is contained in:
evazion
2022-01-11 10:28:33 -06:00
parent 422dbbc72e
commit 40d6351249
3 changed files with 28 additions and 2 deletions

View File

@@ -40,13 +40,20 @@ module TagRelationshipRetirementService
end
def inactive_relationships
(inactive_aliases + TagAlias.active.empty + TagImplication.active.empty).uniq
(inactive_aliases + inactive_implications).uniq
end
def inactive_implications
TagImplication.active.empty.where.not(consequent_name: "banned_artist")
end
def inactive_aliases
aliases = TagAlias.general.or(TagAlias.artist).active.where("tag_aliases.created_at < ?", THRESHOLD.ago)
aliases.select do |tag_alias|
aliases = aliases.select do |tag_alias|
!tag_alias.consequent_tag.posts.exists?(["created_at > ?", THRESHOLD.ago])
end
aliases += TagAlias.active.empty
aliases
end
end

View File

@@ -356,6 +356,14 @@ class Tag < ApplicationRecord
cosplay_tags.grep(/\A(.+)_\(cosplay\)\Z/) { "#{TagAlias.to_aliased([$1]).first}_(cosplay)" } + other_tags
end
def implied_tags
TagImplication.tags_implied_by([name])
end
def implies?(tag_name)
implied_tags.exists?(name: tag_name)
end
def posts
Post.system_tag_match(name)
end