FIX: handle clicks counters in full quotes
This commit is contained in:
parent
081eb76308
commit
7696b92c8c
|
@ -106,10 +106,15 @@ class CookedPostProcessor
|
||||||
|
|
||||||
return if previous.blank?
|
return if previous.blank?
|
||||||
|
|
||||||
previous_text = Nokogiri::HTML::fragment(previous).text.strip
|
# remove click counters
|
||||||
quoted_text = @doc.css("aside.quote:first-child blockquote").first&.text&.strip
|
previous_doc = Nokogiri::HTML::fragment(previous)
|
||||||
|
previous_doc.css("span.clicks").remove
|
||||||
|
|
||||||
return if previous_text != quoted_text
|
previous_text = previous_doc.text.strip
|
||||||
|
|
||||||
|
quoted_text = @doc.css("aside.quote:first-child blockquote").first&.text&.strip || ""
|
||||||
|
|
||||||
|
return if previous_text.gsub(/(\s){2,}/, '\1') != quoted_text.gsub(/(\s){2,}/, '\1')
|
||||||
|
|
||||||
quote_regexp = /\A\s*\[quote.+?\[\/quote\]/im
|
quote_regexp = /\A\s*\[quote.+?\[\/quote\]/im
|
||||||
quoteless_raw = @post.raw.sub(quote_regexp, "").strip
|
quoteless_raw = @post.raw.sub(quote_regexp, "").strip
|
||||||
|
|
|
@ -1305,7 +1305,7 @@ describe CookedPostProcessor do
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context "remove direct reply full quote" do
|
context "full quote on direct reply" do
|
||||||
fab!(:topic) { Fabricate(:topic) }
|
fab!(:topic) { Fabricate(:topic) }
|
||||||
let!(:post) { Fabricate(:post, topic: topic, raw: 'this is the "first" post') }
|
let!(:post) { Fabricate(:post, topic: topic, raw: 'this is the "first" post') }
|
||||||
|
|
||||||
|
@ -1384,6 +1384,23 @@ describe CookedPostProcessor do
|
||||||
expect(reply.raw).to eq("and this is the third reply")
|
expect(reply.raw).to eq("and this is the third reply")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "works with click counters" do
|
||||||
|
post = Fabricate(:post,
|
||||||
|
topic: topic,
|
||||||
|
raw: "[Discourse](https://www.discourse.org) is amazing!",
|
||||||
|
cooked: %{<p><a href="https://www.discourse.org">Discourse <span class="badge badge-notification clicks" title="1 click">1</span></a> is amazing!</p>}
|
||||||
|
)
|
||||||
|
|
||||||
|
reply = Fabricate(:post,
|
||||||
|
topic: topic,
|
||||||
|
raw: "[quote]\n[Discourse](https://www.discourse.org) is amazing!\n[/quote]\nIt sure is :+1:"
|
||||||
|
)
|
||||||
|
|
||||||
|
CookedPostProcessor.new(reply).remove_full_quote_on_direct_reply
|
||||||
|
|
||||||
|
expect(reply.raw).to eq("It sure is :+1:")
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue