mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 10:50:26 -06:00
Merge pull request #881 from novemberkilo/master
Improve flog metric for Post#extract_quoted_post_numbers
This commit is contained in:
commit
3dfc034e8d
@ -418,30 +418,21 @@ class Post < ActiveRecord::Base
|
||||
DraftSequence.next!(last_editor_id, topic.draft_key)
|
||||
end
|
||||
|
||||
|
||||
# Determine what posts are quoted by this post
|
||||
def extract_quoted_post_numbers
|
||||
self.quoted_post_numbers = []
|
||||
temp_collector = []
|
||||
|
||||
# Create relationships for the quotes
|
||||
raw.scan(/\[quote=\"([^"]+)"\]/).each do |m|
|
||||
if m.present?
|
||||
args = {}
|
||||
m.first.scan(/([a-z]+)\:(\d+)/).each do |arg|
|
||||
args[arg[0].to_sym] = arg[1].to_i
|
||||
end
|
||||
|
||||
if args[:topic].present?
|
||||
# If the topic attribute is present, ensure it's the same topic
|
||||
self.quoted_post_numbers << args[:post] if topic_id == args[:topic]
|
||||
else
|
||||
self.quoted_post_numbers << args[:post]
|
||||
end
|
||||
|
||||
end
|
||||
raw.scan(/\[quote=\"([^"]+)"\]/).each do |quote|
|
||||
args = parse_quote_into_arguments(quote)
|
||||
# If the topic attribute is present, ensure it's the same topic
|
||||
temp_collector << args[:post] unless (args[:topic].present? && topic_id != args[:topic])
|
||||
end
|
||||
|
||||
self.quoted_post_numbers.uniq!
|
||||
self.quote_count = quoted_post_numbers.size
|
||||
temp_collector.uniq!
|
||||
self.quoted_post_numbers = temp_collector
|
||||
self.quote_count = temp_collector.size
|
||||
end
|
||||
|
||||
def save_reply_relationships
|
||||
@ -487,4 +478,14 @@ class Post < ActiveRecord::Base
|
||||
def add_error_if_count_exceeded(key_for_translation, current_count, max_count)
|
||||
errors.add(:base, I18n.t(key_for_translation, count: max_count)) if current_count > max_count
|
||||
end
|
||||
|
||||
def parse_quote_into_arguments(quote)
|
||||
return {} unless quote.present?
|
||||
args = {}
|
||||
quote.first.scan(/([a-z]+)\:(\d+)/).each do |arg|
|
||||
args[arg[0].to_sym] = arg[1].to_i
|
||||
end
|
||||
args
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user