include SignatureAuthentication
include Authorization
- ANCESTORS_LIMIT = 20
- DESCENDANTS_LIMIT = 20
- DESCENDANTS_DEPTH_LIMIT = 4
+ ANCESTORS_LIMIT = 40
+ DESCENDANTS_LIMIT = 60
+ DESCENDANTS_DEPTH_LIMIT = 20
layout 'public'
end
def set_descendants
- @max_descendant_thread_id = params[:max_descendant_thread_id]&.to_i
+ @max_descendant_thread_id = params[:max_descendant_thread_id]&.to_i
@since_descendant_thread_id = params[:since_descendant_thread_id]&.to_i
descendants = cache_collection(
),
Status
)
+
@descendant_threads = []
if descendants.present?
statuses = [descendants.first]
- depth = 1
+ depth = 1
descendants.drop(1).each_with_index do |descendant, index|
if descendants[index].id == descendant.in_reply_to_id
is_successor ||= false
direct_reply_id ||= false
parent_id ||= false
- is_direct_parent = direct_reply_id == status.id
- is_direct_child = parent_id == status.in_reply_to_id
- centered ||= include_threads && !is_predecessor && !is_successor
- h_class = microformats_h_class(status, is_predecessor, is_successor, include_threads)
- style_classes = style_classes(status, is_predecessor, is_successor, include_threads)
- mf_classes = microformats_classes(status, is_direct_parent, is_direct_child)
- entry_classes = h_class + ' ' + mf_classes + ' ' + style_classes
+ is_direct_parent = direct_reply_id == status.id
+ is_direct_child = parent_id == status.in_reply_to_id
+ centered ||= include_threads && !is_predecessor && !is_successor
+ h_class = microformats_h_class(status, is_predecessor, is_successor, include_threads)
+ style_classes = style_classes(status, is_predecessor, is_successor, include_threads)
+ mf_classes = microformats_classes(status, is_direct_parent, is_direct_child)
+ entry_classes = h_class + ' ' + mf_classes + ' ' + style_classes
- if status.reply? && include_threads
- if @next_ancestor
.entry{ class: entry_classes }
- = render 'stream_entries/more', url: short_account_status_url(@next_ancestor.account.username, @next_ancestor)
+ = render 'stream_entries/more', url: TagManager.instance.url_for(@next_ancestor)
+
= render partial: 'stream_entries/status', collection: @ancestors, as: :status, locals: { is_predecessor: true, direct_reply_id: status.in_reply_to_id }
.entry{ class: entry_classes }
= render 'stream_entries/more', url: short_account_status_url(status.account.username, status, max_descendant_thread_id: @since_descendant_thread_id + 1)
- @descendant_threads.each do |thread|
= render partial: 'stream_entries/status', collection: thread[:statuses], as: :status, locals: { is_successor: true, parent_id: status.id }
+
- if thread[:next_status]
.entry{ class: entry_classes }
- = render 'stream_entries/more', url: short_account_status_url(thread[:next_status].account.username, thread[:next_status])
+ = render 'stream_entries/more', url: TagManager.instance.url_for(thread[:next_status])
- if @next_descendant_thread
.entry{ class: entry_classes }
= render 'stream_entries/more', url: short_account_status_url(status.account.username, status, since_descendant_thread_id: @max_descendant_thread_id - 1)