diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 750e15fa31..65017acba3 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -11,7 +11,7 @@ class TagsController < ApplicationController before_action :authenticate_user!, if: :whitelist_mode? before_action :set_local before_action :set_tag - before_action :set_statuses, if: -> { request.format == :rss } + before_action :set_statuses before_action :set_instance_presenter skip_before_action :require_functional!, unless: :whitelist_mode? @@ -44,7 +44,12 @@ class TagsController < ApplicationController end def set_statuses - @statuses = cache_collection(TagFeed.new(@tag, nil, local: @local).get(limit_param), Status) + case request.format&.to_sym + when :json + @statuses = cache_collection(TagFeed.new(@tag, current_account, local: @local).get(PAGE_SIZE, params[:max_id], params[:since_id], params[:min_id]), Status) + when :rss + @statuses = cache_collection(TagFeed.new(@tag, nil, local: @local).get(limit_param), Status) + end end def set_instance_presenter @@ -59,6 +64,8 @@ class TagsController < ApplicationController ActivityPub::CollectionPresenter.new( id: tag_url(@tag), type: :ordered, + size: @tag.statuses.count, + items: @statuses.map { |status| ActivityPub::TagManager.instance.uri_for(status) } ) end end