app/services/documents/analysis/content_service.rb
module Documents
module Analysis
class ContentService < Service
def self.analyze(analysis_id)
analysis = DocumentAnalysis.find(analysis_id)
document = analysis.document
analysis.hate_trigger_words = LanguageFilter::Filter.new(matchlist: :hate, replacement: :stars).matched(document.plaintext)
analysis.hate_content_flag = analysis.hate_trigger_words.any?
analysis.profanity_trigger_words = LanguageFilter::Filter.new(matchlist: :profanity, replacement: :stars).matched(document.plaintext)
analysis.profanity_content_flag = analysis.profanity_trigger_words.any?
analysis.sex_trigger_words = LanguageFilter::Filter.new(matchlist: :sex, replacement: :stars).matched(document.plaintext)
analysis.sex_content_flag = analysis.sex_trigger_words.any?
analysis.violence_trigger_words = LanguageFilter::Filter.new(matchlist: :violence, replacement: :stars).matched(document.plaintext)
analysis.violence_content_flag = analysis.violence_trigger_words.any?
analysis.adult_content_flag = analysis.hate_content_flag? || analysis.profanity_content_flag? || analysis.sex_content_flag? || analysis.violence_content_flag?
analysis.save!
end
def self.adult_content?(matchlist=:hate, content)
LanguageFilter::Filter.new(matchlist: matchlist.to_sym).matched(content)
end
end
end
end