mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-27 10:35:36 +08:00
In rare occasions bookmarks can be made on spam posts that become hidden. In that case go ahead and hide the excerpts from the bookmark page. --------- Co-authored-by: discourse-patch-triage[bot] <272280883+discourse-patch-triage[bot]@users.noreply.github.com> Co-authored-by: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com>
40 lines
815 B
Ruby
Vendored
40 lines
815 B
Ruby
Vendored
# frozen_string_literal: true
|
|
|
|
module PostItemExcerpt
|
|
def self.included(base)
|
|
base.attributes(:excerpt, :truncated)
|
|
end
|
|
|
|
def cooked
|
|
@cooked ||= object.cooked || PrettyText.cook(object.raw)
|
|
end
|
|
|
|
def excerpt
|
|
return nil unless can_see_post_item_excerpt?
|
|
return nil unless cooked
|
|
@excerpt ||= PrettyText.excerpt(cooked, 300, keep_emoji_images: true)
|
|
end
|
|
|
|
def include_excerpt?
|
|
can_see_post_item_excerpt?
|
|
end
|
|
|
|
def include_cooked?
|
|
can_see_post_item_excerpt?
|
|
end
|
|
|
|
def truncated
|
|
true
|
|
end
|
|
|
|
def include_truncated?
|
|
can_see_post_item_excerpt? && cooked.length > 300
|
|
end
|
|
|
|
private
|
|
|
|
def can_see_post_item_excerpt?
|
|
return true if !respond_to?(:post_item_excerpt_post) || post_item_excerpt_post.blank?
|
|
scope&.can_see_post?(post_item_excerpt_post)
|
|
end
|
|
end
|