Add sensitive words setting

This commit is contained in:
KMY 2023-07-27 12:47:33 +09:00
parent 0dbc070037
commit cd00d7f533
12 changed files with 128 additions and 1 deletions

View file

@ -82,10 +82,18 @@ class PostStatusService < BaseService
@scheduled_at = @options[:scheduled_at]&.to_datetime
@scheduled_at = nil if scheduled_in_the_past?
@reference_ids = (@options[:status_reference_ids] || []).map(&:to_i).filter(&:positive?)
process_sensitive_words
rescue ArgumentError
raise ActiveRecord::RecordInvalid
end
def process_sensitive_words
if [:public, :public_unlisted, :login].include?(@visibility&.to_sym) && Admin::SensitiveWord.sensitive?(@text, @options[:spoiler_text] || '')
@text = Admin::SensitiveWord.modified_text(@text, @options[:spoiler_text])
@options[:spoiler_text] = I18n.t('admin.sensitive_words.alert')
end
end
def searchability
return :private if @options[:searchability]&.to_sym == :public && @visibility&.to_sym == :unlisted && @account.user&.setting_disallow_unlisted_public_searchability