module CensorBear class TextResult # data_id 格式 "klass_name-klass_id-user_id-ip_adress" attr_accessor :review, :original, :filtered, :data_id, :service, :raw_data def initialize(review, original = nil, filtered = nil, data_id = nil, service = 'aliyun', raw_data = nil, **options) # review 表示是否需要人工审核 @review = review @original = original @filtered = filtered @data_id = data_id @service = service @raw_data = raw_data if @review # TODO: 可以考虑放到异步任务中,不阻塞 params = { data_id: @data_id, service: @service, raw_data: @raw_data, } unless @data_id.blank? text_data_id = TextDataId.new(@data_id) params[:record] = text_data_id.record unless text_data_id.record.blank? params[:ip_address] = text_data_id.ip_address unless text_data_id.ip_address.blank? params[:user_id] = text_data_id.user_id unless text_data_id.user_id.blank? else params[:record] = options[:record] unless options[:record].blank? params[:ip_address] = options[:ip_address] unless options[:ip_address].blank? params[:user_id] = options[:user_id] unless options[:user_id].blank? end ReviewLogs::Text.find_or_create_by(params) end end end class ImageResult # data_id 格式 "klass_name-klass_id-image_id-user_id-ip_adress" attr_accessor :review, :url, :data_id, :service, :raw_data def initialize(review, url = nil, data_id = nil, service = 'aliyun', raw_data = nil) @review = review @url = url @data_id = data_id @service = service @raw_data = raw_data if @review # 可以考虑放到异步任务中 params = { url: @url, data_id: @data_id, service: @service, raw_data: @raw_data, } unless @data_id.blank? image_data_id = ImageDataId.new(@data_id) params[:record] = image_data_id.record unless image_data_id.record.blank? params[:ip_address] = image_data_id.ip_address unless image_data_id.ip_address.blank? params[:user_id] = image_data_id.user_id unless image_data_id.user_id.blank? params[:image_id] = image_data_id.image_id unless image_data_id.image_id.blank? end ReviewLogs::Image.find_or_create_by(params) end end end end