]> cat aescling's git repositories - mastodon.git/blob - app/controllers/directories_controller.rb
Merge branch 'master' into glitch-soc/merge-upstream
[mastodon.git] / app / controllers / directories_controller.rb
1 # frozen_string_literal: true
2
3 class DirectoriesController < ApplicationController
4 layout 'public'
5
6 before_action :authenticate_user!, if: :whitelist_mode?
7 before_action :require_enabled!
8 before_action :set_instance_presenter
9 before_action :set_tag, only: :show
10 before_action :set_tags
11 before_action :set_accounts
12 before_action :set_pack
13
14 def index
15 render :index
16 end
17
18 def show
19 render :index
20 end
21
22 private
23
24 def set_pack
25 use_pack 'share'
26 end
27
28 def require_enabled!
29 return not_found unless Setting.profile_directory
30 end
31
32 def set_tag
33 @tag = Tag.discoverable.find_by!(name: params[:id].downcase)
34 end
35
36 def set_tags
37 @tags = Tag.discoverable.limit(30).reject { |tag| tag.cached_sample_accounts.empty? }
38 end
39
40 def set_accounts
41 @accounts = Account.discoverable.by_recent_status.page(params[:page]).per(40).tap do |query|
42 query.merge!(Account.tagged_with(@tag.id)) if @tag
43 end
44 end
45
46 def set_instance_presenter
47 @instance_presenter = InstancePresenter.new
48 end
49 end
This page took 0.104406 seconds and 4 git commands to generate.