nas/app/models/admin/sensitive_word.rb
2023-07-27 12:47:33 +09:00

25 lines
635 B
Ruby

# frozen_string_literal: true
class Admin::SensitiveWord
class << self
def sensitive?(text, spoiler_text)
exposure_text = (spoiler_text.presence || text)
(spoiler_text.blank? && sensitive_words.any? { |word| text.include?(word) }) ||
sensitive_words_for_full.any? { |word| exposure_text.include?(word) }
end
def modified_text(text, spoiler_text)
spoiler_text.present? ? "#{spoiler_text}\n\n#{text}" : text
end
private
def sensitive_words
Setting.sensitive_words || []
end
def sensitive_words_for_full
Setting.sensitive_words_for_full || []
end
end
end