posts: warn when post from known source is missing an artist tag.

This commit is contained in:
evazion
2017-11-25 14:44:22 -06:00
parent 4cd372296d
commit 94fa835733

View File

@@ -19,6 +19,7 @@ class Post < ApplicationRecord
validates_inclusion_of :rating, in: %w(s q e), message: "rating must be s, q, or e"
validate :tag_names_are_valid
validate :added_tags_are_valid
validate :has_artist_tag
validate :has_copyright_tag
validate :post_is_not_its_own_parent
validate :updater_can_change_rating
@@ -1740,6 +1741,17 @@ class Post < ApplicationRecord
end
end
def has_artist_tag
return if !new_record?
return if source !~ %r!\Ahttps?://!
return if has_tag?("artist_request") || tags.any? { |t| t.category == Tag.categories.artist }
site = Sources::Site.new(source)
self.warnings[:base] << "Artist tag is required. Create a new tag with [[artist:<artist_name>]]. Ask on the forum if you need naming help"
rescue Sources::Site::NoStrategyError => e
# unrecognized source; do nothing.
end
def has_copyright_tag
return if !new_record?
return if has_tag?("copyright_request") || tags.any? { |t| t.category == Tag.categories.copyright }