Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 16 additions & 10 deletions lib/summarization/strategies/topic_summary.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,28 @@ def highest_target_number
end

def targets_data
posts_data =
(target.has_summary? ? best_replies : pick_selection).pluck(
:post_number,
:raw,
:username,
:last_version_at,
)

posts_data.reduce([]) do |memo, (pn, raw, username, last_version_at)|
post_attributes = %i[post_number raw username last_version_at]
if SiteSetting.enable_names && !SiteSetting.prioritize_username_in_ux
post_attributes.push(:name)
end

posts_data = (target.has_summary? ? best_replies : pick_selection).pluck(post_attributes)

posts_data.reduce([]) do |memo, (pn, raw, username, last_version_at, name)|
raw_text = raw

if pn == 1 && target.topic_embed&.embed_content_cache.present?
raw_text = target.topic_embed&.embed_content_cache
end

memo << { poster: username, id: pn, text: raw_text, last_version_at: last_version_at }
display_name = name.presence || username

memo << {
poster: display_name,
id: pn,
text: raw_text,
last_version_at: last_version_at,
}
end
end

Expand Down
32 changes: 32 additions & 0 deletions spec/lib/modules/summarization/strategies/topic_summary_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,37 @@
expect(op_content).to include(topic_embed.embed_content_cache)
end
end

context "when enable_names enabled and prioritize_username_in_ux disabled" do
fab!(:user) { Fabricate(:user, name: "test") }

it "includes the name" do
SiteSetting.enable_names = true
SiteSetting.prioritize_username_in_ux = false

post_1.update!(user: user)

content = topic_summary.targets_data
poster_name = content.first[:poster]

expect(poster_name).to eq("test")
end
end

context "when enable_names enabled and prioritize_username_in_ux enabled" do
fab!(:user) { Fabricate(:user, username: "test") }

it "includes the username" do
SiteSetting.enable_names = true
SiteSetting.prioritize_username_in_ux = true

post_1.update!(user: user)

content = topic_summary.targets_data
poster_name = content.first[:poster]

expect(poster_name).to eq("test")
end
end
end
end