| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -4,6 +4,8 @@ module Admin
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  class TagsController < BaseController
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    before_action :set_tags, only: :index
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    before_action :set_tag, except: :index
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    before_action :set_usage_by_domain, except: :index
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    before_action :set_counters, except: :index
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def index
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      authorize :tag, :index?
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -33,6 +35,21 @@ module Admin
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      @tag = Tag.find(params[:id])
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def set_usage_by_domain
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      @usage_by_domain = @tag.statuses
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                             .where(visibility: :public)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                             .where(Status.arel_table[:id].gteq(Mastodon::Snowflake.id_at(Time.now.utc.beginning_of_day)))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                             .joins(:account)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                             .group('accounts.domain')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                             .reorder('statuses_count desc')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                             .pluck('accounts.domain, count(*) AS statuses_count')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def set_counters
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      @accounts_today = @tag.history.first[:accounts]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      @accounts_week  = Redis.current.pfcount(*current_week_days.map { |day| "activity:tags:#{@tag.id}:#{day}:accounts" })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def filtered_tags
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      scope = Tag
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      scope = scope.discoverable if filter_params[:context] == 'directory'
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -49,5 +66,13 @@ module Admin
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def tag_params
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      params.require(:tag).permit(:name, :trendable, :usable, :listable)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def current_week_days
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      now = Time.now.utc.beginning_of_day.to_date
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      (Date.commercial(now.cwyear, now.cweek)..now).map do |date|
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        date.to_time.utc.beginning_of_day.to_i
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				end
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |