# frozen_string_literal: true class QuoteComparer def self.whitespace " \t\r\n" end def initialize(topic_id, post_number, text) @topic_id = topic_id @post_number = post_number @text = text @parent_post = Post.where(topic_id: @topic_id, post_number: @post_number).first end # This algorithm is far from perfect, but it follows the Discourse # philosophy of "catch the obvious cases, leave moderation for the # complicated ones" def missing? @parent_post.blank? end def modified? return true if @text.blank? if @parent_post parent_text = Nokogiri::HTML5.fragment(@parent_post.cooked).text.delete(QuoteComparer.whitespace) text = @text.delete(QuoteComparer.whitespace) !parent_text.include?(text) end end end