Add: #605 リモート投稿に適用するセンシティブワード設定 (#612)

This commit is contained in:
KMY(雪あすか) 2024-02-27 10:14:42 +09:00 committed by GitHub
parent 7d96d5828e
commit 9dd11117db
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 149 additions and 11 deletions

View file

@ -2,8 +2,13 @@
class Admin::SensitiveWord
class << self
def sensitive?(text, spoiler_text)
def sensitive?(text, spoiler_text, local: true)
exposure_text = spoiler_text.presence || text
sensitive = (spoiler_text.blank? && sensitive_words_all.any? { |word| include?(text, word) }) ||
sensitive_words_all_for_full.any? { |word| include?(exposure_text, word) }
return sensitive if sensitive || !local
(spoiler_text.blank? && sensitive_words.any? { |word| include?(text, word) }) ||
sensitive_words_for_full.any? { |word| include?(exposure_text, word) }
end
@ -12,6 +17,10 @@ class Admin::SensitiveWord
spoiler_text.present? ? "#{spoiler_text}\n\n#{text}" : text
end
def alternative_text
Setting.auto_warning_text.presence || I18n.t('admin.sensitive_words.alert') || 'CW'
end
private
def include?(text, word)
@ -29,5 +38,13 @@ class Admin::SensitiveWord
def sensitive_words_for_full
Setting.sensitive_words_for_full || []
end
def sensitive_words_all
Setting.sensitive_words_all || []
end
def sensitive_words_all_for_full
Setting.sensitive_words_all_for_full || []
end
end
end

View file

@ -53,6 +53,9 @@ class Form::AdminSettings
post_stranger_mentions_max
sensitive_words
sensitive_words_for_full
sensitive_words_all
sensitive_words_all_for_full
auto_warning_text
authorized_fetch
receive_other_servers_emoji_reaction
streaming_other_servers_emoji_reaction
@ -127,6 +130,8 @@ class Form::AdminSettings
ng_words_for_stranger_mention
sensitive_words
sensitive_words_for_full
sensitive_words_all
sensitive_words_all_for_full
emoji_reaction_disallow_domains
permit_new_account_domains
).freeze