| 
									
										
										
										
											2016-11-28 13:36:47 +01:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-25 02:50:48 +01:00
										 |  |  | require 'sidekiq/web' | 
					
						
							| 
									
										
										
										
											2017-05-08 10:52:57 +09:00
										 |  |  | require 'sidekiq-scheduler/web' | 
					
						
							| 
									
										
										
										
											2016-03-25 02:50:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-28 04:36:42 +02:00
										 |  |  | Sidekiq::Web.set :session_secret, Rails.application.secrets[:secret_key_base] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-20 22:53:20 +01:00
										 |  |  | Rails.application.routes.draw do | 
					
						
							| 
									
										
										
										
											2017-01-21 22:19:13 +01:00
										 |  |  |   mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development? | 
					
						
							| 
									
										
										
										
											2016-08-18 15:49:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-25 14:12:24 +01:00
										 |  |  |   authenticate :user, lambda { |u| u.admin? } do | 
					
						
							| 
									
										
										
										
											2016-12-13 13:42:10 +01:00
										 |  |  |     mount Sidekiq::Web, at: 'sidekiq', as: :sidekiq | 
					
						
							|  |  |  |     mount PgHero::Engine, at: 'pghero', as: :pghero | 
					
						
							| 
									
										
										
										
											2016-03-25 02:50:48 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-22 19:38:47 +02:00
										 |  |  |   use_doorkeeper do | 
					
						
							| 
									
										
										
										
											2018-05-19 21:05:08 +02:00
										 |  |  |     controllers authorizations: 'oauth/authorizations', | 
					
						
							|  |  |  |                 authorized_applications: 'oauth/authorized_applications', | 
					
						
							|  |  |  |                 tokens: 'oauth/tokens' | 
					
						
							| 
									
										
										
										
											2016-10-22 19:38:47 +02:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2016-03-07 12:42:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-13 07:09:07 -04:00
										 |  |  |   get '.well-known/host-meta', to: 'well_known/host_meta#show', as: :host_meta, defaults: { format: 'xml' } | 
					
						
							| 
									
										
										
										
											2017-04-17 13:58:03 -04:00
										 |  |  |   get '.well-known/webfinger', to: 'well_known/webfinger#show', as: :webfinger | 
					
						
							| 
									
										
										
										
											2018-09-29 19:14:48 +02:00
										 |  |  |   get '.well-known/change-password', to: redirect('/auth/edit') | 
					
						
							| 
									
										
										
										
											2017-06-06 19:29:42 +02:00
										 |  |  |   get 'manifest', to: 'manifests#show', defaults: { format: 'json' } | 
					
						
							| 
									
										
										
										
											2017-08-14 04:53:31 +02:00
										 |  |  |   get 'intent', to: 'intents#show' | 
					
						
							| 
									
										
										
										
											2018-08-24 04:33:27 +02:00
										 |  |  |   get 'custom.css', to: 'custom_css#show', as: :custom_css | 
					
						
							| 
									
										
										
										
											2016-02-22 16:00:20 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-27 16:07:59 +01:00
										 |  |  |   devise_scope :user do | 
					
						
							|  |  |  |     get '/invite/:invite_code', to: 'auth/registrations#new', as: :public_invite | 
					
						
							| 
									
										
										
										
											2018-02-04 05:42:13 +01:00
										 |  |  |     match '/auth/finish_signup' => 'auth/confirmations#finish_signup', via: [:get, :patch], as: :finish_signup | 
					
						
							| 
									
										
										
										
											2017-11-27 16:07:59 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-05 22:43:05 +01:00
										 |  |  |   devise_for :users, path: 'auth', controllers: { | 
					
						
							| 
									
										
										
										
											2018-02-04 05:42:13 +01:00
										 |  |  |     omniauth_callbacks: 'auth/omniauth_callbacks', | 
					
						
							| 
									
										
										
										
											2016-03-05 22:43:05 +01:00
										 |  |  |     sessions:           'auth/sessions', | 
					
						
							|  |  |  |     registrations:      'auth/registrations', | 
					
						
							| 
									
										
										
										
											2016-10-03 16:38:22 +02:00
										 |  |  |     passwords:          'auth/passwords', | 
					
						
							| 
									
										
										
										
											2016-11-28 13:36:47 +01:00
										 |  |  |     confirmations:      'auth/confirmations', | 
					
						
							| 
									
										
										
										
											2016-03-05 22:43:05 +01:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-03-05 13:12:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-24 15:46:29 +09:00
										 |  |  |   get '/users/:username', to: redirect('/@%{username}'), constraints: lambda { |req| req.format.nil? || req.format.html? } | 
					
						
							| 
									
										
										
										
											2018-09-03 00:10:28 +02:00
										 |  |  |   get '/authorize_follow', to: redirect { |_, request| "/authorize_interaction?#{request.params.to_query}" } | 
					
						
							| 
									
										
										
										
											2017-03-22 19:26:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-29 19:42:08 +01:00
										 |  |  |   resources :accounts, path: 'users', only: [:show], param: :username do | 
					
						
							| 
									
										
										
										
											2016-12-18 15:20:39 +01:00
										 |  |  |     resources :stream_entries, path: 'updates', only: [:show] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         get :embed | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-03-19 14:02:30 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-01 19:52:25 +01:00
										 |  |  |     get :remote_follow,  to: 'remote_follow#new' | 
					
						
							|  |  |  |     post :remote_follow, to: 'remote_follow#create' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  |     resources :statuses, only: [:show] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         get :activity | 
					
						
							| 
									
										
										
										
											2017-08-30 10:23:43 +02:00
										 |  |  |         get :embed | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-19 07:52:37 -04:00
										 |  |  |     resources :followers, only: [:index], controller: :follower_accounts | 
					
						
							|  |  |  |     resources :following, only: [:index], controller: :following_accounts | 
					
						
							| 
									
										
										
										
											2018-01-08 10:57:52 +01:00
										 |  |  |     resource :follow, only: [:create], controller: :account_follow | 
					
						
							| 
									
										
										
										
											2017-04-19 07:52:37 -04:00
										 |  |  |     resource :unfollow, only: [:create], controller: :account_unfollow | 
					
						
							| 
									
										
										
										
											2018-03-04 09:19:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  |     resource :outbox, only: [:show], module: :activitypub | 
					
						
							| 
									
										
										
										
											2017-08-08 21:52:15 +02:00
										 |  |  |     resource :inbox, only: [:create], module: :activitypub | 
					
						
							| 
									
										
										
										
											2018-03-04 09:19:11 +01:00
										 |  |  |     resources :collections, only: [:show], module: :activitypub | 
					
						
							| 
									
										
										
										
											2016-02-29 19:42:08 +01:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2016-02-22 16:00:20 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-31 00:02:59 +02:00
										 |  |  |   resource :inbox, only: [:create], module: :activitypub | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-22 19:26:22 +01:00
										 |  |  |   get '/@:username', to: 'accounts#show', as: :short_account | 
					
						
							| 
									
										
										
										
											2017-08-16 17:12:58 +02:00
										 |  |  |   get '/@:username/with_replies', to: 'accounts#show', as: :short_account_with_replies | 
					
						
							|  |  |  |   get '/@:username/media', to: 'accounts#show', as: :short_account_media | 
					
						
							| 
									
										
										
										
											2019-02-04 04:25:59 +01:00
										 |  |  |   get '/@:username/tagged/:tag', to: 'accounts#show', as: :short_account_tag | 
					
						
							| 
									
										
										
										
											2017-03-22 19:26:22 +01:00
										 |  |  |   get '/@:account_username/:id', to: 'statuses#show', as: :short_account_status | 
					
						
							| 
									
										
										
										
											2017-08-30 10:23:43 +02:00
										 |  |  |   get '/@:account_username/:id/embed', to: 'statuses#embed', as: :embed_short_account_status | 
					
						
							| 
									
										
										
										
											2017-03-22 19:26:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-18 03:03:12 +02:00
										 |  |  |   get  '/interact/:id', to: 'remote_interaction#new', as: :remote_interaction | 
					
						
							|  |  |  |   post '/interact/:id', to: 'remote_interaction#create' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-06 17:36:11 +01:00
										 |  |  |   get '/explore', to: 'directories#index', as: :explore | 
					
						
							|  |  |  |   get '/explore/:id', to: 'directories#show', as: :explore_hashtag | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-14 02:28:49 +02:00
										 |  |  |   namespace :settings do | 
					
						
							|  |  |  |     resource :profile, only: [:show, :update] | 
					
						
							|  |  |  |     resource :preferences, only: [:show, :update] | 
					
						
							| 
									
										
										
										
											2017-10-04 17:22:52 +09:00
										 |  |  |     resource :notifications, only: [:show, :update] | 
					
						
							| 
									
										
										
										
											2017-03-30 19:42:33 +02:00
										 |  |  |     resource :import, only: [:show, :create] | 
					
						
							| 
									
										
										
										
											2017-03-19 20:29:41 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-21 23:21:32 +01:00
										 |  |  |     resource :export, only: [:show, :create] | 
					
						
							| 
									
										
										
										
											2017-04-11 16:00:43 -04:00
										 |  |  |     namespace :exports, constraints: { format: :csv } do | 
					
						
							|  |  |  |       resources :follows, only: :index, controller: :following_accounts | 
					
						
							|  |  |  |       resources :blocks, only: :index, controller: :blocked_accounts | 
					
						
							| 
									
										
										
										
											2017-04-12 12:20:44 -04:00
										 |  |  |       resources :mutes, only: :index, controller: :muted_accounts | 
					
						
							| 
									
										
										
										
											2019-01-01 13:44:04 +01:00
										 |  |  |       resources :lists, only: :index, controller: :lists | 
					
						
							|  |  |  |       resources :domain_blocks, only: :index, controller: :blocked_domains | 
					
						
							| 
									
										
										
										
											2017-03-19 20:29:41 +01:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-01-27 20:28:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-21 22:23:17 -04:00
										 |  |  |     resource :two_factor_authentication, only: [:show, :create, :destroy] | 
					
						
							|  |  |  |     namespace :two_factor_authentication do | 
					
						
							|  |  |  |       resources :recovery_codes, only: [:create] | 
					
						
							|  |  |  |       resource :confirmation, only: [:new, :create] | 
					
						
							| 
									
										
										
										
											2017-01-27 20:28:46 +01:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-04-24 00:38:37 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resource :follower_domains, only: [:show, :update] | 
					
						
							| 
									
										
										
										
											2017-08-22 12:33:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-23 00:59:35 +02:00
										 |  |  |     resources :applications, except: [:edit] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         post :regenerate | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2017-08-22 12:33:57 -04:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-14 18:01:27 +02:00
										 |  |  |     resource :delete, only: [:show, :destroy] | 
					
						
							| 
									
										
										
										
											2017-11-27 22:47:06 +01:00
										 |  |  |     resource :migration, only: [:show, :update] | 
					
						
							| 
									
										
										
										
											2017-07-19 11:59:04 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resources :sessions, only: [:destroy] | 
					
						
							| 
									
										
										
										
											2019-02-04 04:25:59 +01:00
										 |  |  |     resources :featured_tags, only: [:index, :create, :destroy] | 
					
						
							| 
									
										
										
										
											2016-10-14 02:28:49 +02:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-16 07:22:20 +01:00
										 |  |  |   resources :media, only: [:show] do | 
					
						
							|  |  |  |     get :player | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-07 17:43:42 +02:00
										 |  |  |   resources :tags,   only: [:show] | 
					
						
							|  |  |  |   resources :emojis, only: [:show] | 
					
						
							| 
									
										
										
										
											2017-11-27 16:07:59 +01:00
										 |  |  |   resources :invites, only: [:index, :create, :destroy] | 
					
						
							| 
									
										
										
										
											2018-06-29 15:34:36 +02:00
										 |  |  |   resources :filters, except: [:show] | 
					
						
							| 
									
										
										
										
											2016-10-02 16:14:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-16 03:01:45 +02:00
										 |  |  |   get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-29 16:54:54 +01:00
										 |  |  |   # Remote follow | 
					
						
							| 
									
										
										
										
											2018-04-08 13:40:22 +02:00
										 |  |  |   resource :remote_unfollow, only: [:create] | 
					
						
							| 
									
										
										
										
											2018-08-18 03:03:12 +02:00
										 |  |  |   resource :authorize_interaction, only: [:show, :create] | 
					
						
							| 
									
										
										
										
											2017-08-14 04:53:31 +02:00
										 |  |  |   resource :share, only: [:show, :create] | 
					
						
							| 
									
										
										
										
											2016-12-29 16:54:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-28 18:45:13 +01:00
										 |  |  |   namespace :admin do | 
					
						
							| 
									
										
										
										
											2018-07-16 01:11:53 +02:00
										 |  |  |     get '/dashboard', to: 'dashboard#index' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-31 14:39:35 -04:00
										 |  |  |     resources :subscriptions, only: [:index] | 
					
						
							| 
									
										
										
										
											2019-01-08 13:39:49 +01:00
										 |  |  |     resources :domain_blocks, only: [:new, :create, :show, :destroy] | 
					
						
							| 
									
										
										
										
											2017-10-04 22:16:10 +09:00
										 |  |  |     resources :email_domain_blocks, only: [:index, :new, :create, :destroy] | 
					
						
							| 
									
										
										
										
											2017-11-24 02:05:53 +01:00
										 |  |  |     resources :action_logs, only: [:index] | 
					
						
							| 
									
										
										
											
												Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
											
										 
											2018-12-22 20:02:09 +01:00
										 |  |  |     resources :warning_presets, except: [:new] | 
					
						
							| 
									
										
										
										
											2017-05-04 12:12:44 -04:00
										 |  |  |     resource :settings, only: [:edit, :update] | 
					
						
							| 
									
										
										
										
											2018-08-19 00:58:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resources :invites, only: [:index, :create, :destroy] do | 
					
						
							|  |  |  |       collection do | 
					
						
							|  |  |  |         post :deactivate_all | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-08-14 04:53:31 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-13 02:16:06 +02:00
										 |  |  |     resources :relays, only: [:index, :new, :create, :destroy] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         post :enable | 
					
						
							|  |  |  |         post :disable | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-08 13:39:49 +01:00
										 |  |  |     resources :instances, only: [:index, :show], constraints: { id: /[^\/]+/ } | 
					
						
							| 
									
										
										
										
											2017-02-17 00:42:52 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
											
												Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
											
										 
											2018-12-22 20:02:09 +01:00
										 |  |  |     resources :reports, only: [:index, :show] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         post :assign_to_self | 
					
						
							|  |  |  |         post :unassign | 
					
						
							|  |  |  |         post :reopen | 
					
						
							|  |  |  |         post :resolve | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-05 23:06:29 +02:00
										 |  |  |       resources :reported_statuses, only: [:create] | 
					
						
							| 
									
										
										
										
											2017-02-17 00:42:52 +01:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-12-06 18:22:59 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 22:04:14 +02:00
										 |  |  |     resources :report_notes, only: [:create, :destroy] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 00:22:58 +01:00
										 |  |  |     resources :accounts, only: [:index, :show] do | 
					
						
							| 
									
										
										
										
											2017-06-08 14:58:22 +02:00
										 |  |  |       member do | 
					
						
							|  |  |  |         post :subscribe | 
					
						
							|  |  |  |         post :unsubscribe | 
					
						
							| 
									
										
										
										
											2017-11-07 19:06:44 +01:00
										 |  |  |         post :enable | 
					
						
							| 
									
										
										
											
												Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
											
										 
											2018-12-22 20:02:09 +01:00
										 |  |  |         post :unsilence | 
					
						
							|  |  |  |         post :unsuspend | 
					
						
							| 
									
										
										
										
											2017-06-08 14:58:22 +02:00
										 |  |  |         post :redownload | 
					
						
							| 
									
										
										
										
											2018-04-02 13:45:07 +02:00
										 |  |  |         post :remove_avatar | 
					
						
							| 
									
										
										
										
											2018-12-11 19:28:03 +01:00
										 |  |  |         post :remove_header | 
					
						
							| 
									
										
										
										
											2017-11-07 19:06:44 +01:00
										 |  |  |         post :memorialize | 
					
						
							| 
									
										
										
										
											2017-06-08 14:58:22 +02:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-10 09:16:06 +02:00
										 |  |  |       resource :change_email, only: [:show, :update] | 
					
						
							| 
									
										
										
										
											2017-04-15 10:44:59 -04:00
										 |  |  |       resource :reset, only: [:create] | 
					
						
							| 
									
										
										
											
												Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
											
										 
											2018-12-22 20:02:09 +01:00
										 |  |  |       resource :action, only: [:new, :create], controller: 'account_actions' | 
					
						
							| 
									
										
										
										
											2019-01-04 13:10:43 +01:00
										 |  |  |       resources :statuses, only: [:index, :show, :create, :update, :destroy] | 
					
						
							| 
									
										
										
											
												Add local followers page to admin account UI (#9610)
* Add local followers page to admin account UI
For moderation, I often find myself wondering who, locally, is following
a remote user. Currently, to see this, I have to go back to the web UI,
paste in their full handle, click their profile, and go to the
"Followers" tab (plus, this information is incidental, and if mastodon
ever decides to resolve all of the follower information, there will be
no place local followers are shown). This PR adds a new page which is
accessible via the "following" count on the admin's account view
page, which shows the local followers. (It has filter parameters for
account location to indicate that only local followers are shown, and
leave room for expansion if mastodon ever decides to store the entire
remote follow list).
* Normalize en.yml
											
										 
											2018-12-27 04:15:39 -08:00
										 |  |  |       resources :followers, only: [:index] | 
					
						
							| 
									
										
										
										
											2018-05-06 17:59:03 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  |       resource :confirmation, only: [:create] do | 
					
						
							|  |  |  |         collection do | 
					
						
							|  |  |  |           post :resend | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2017-11-11 20:23:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |       resource :role do | 
					
						
							|  |  |  |         member do | 
					
						
							|  |  |  |           post :promote | 
					
						
							|  |  |  |           post :demote | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-12-06 18:22:59 +01:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-05-02 20:07:12 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resources :users, only: [] do | 
					
						
							|  |  |  |       resource :two_factor_authentication, only: [:destroy] | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-09-19 03:52:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-27 23:11:30 +09:00
										 |  |  |     resources :custom_emojis, only: [:index, :new, :create, :update, :destroy] do | 
					
						
							| 
									
										
										
										
											2017-10-05 23:42:05 +02:00
										 |  |  |       member do | 
					
						
							|  |  |  |         post :copy | 
					
						
							|  |  |  |         post :enable | 
					
						
							|  |  |  |         post :disable | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-10-08 03:26:43 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resources :account_moderation_notes, only: [:create, :destroy] | 
					
						
							| 
									
										
										
										
											2018-12-06 17:36:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resources :tags, only: [:index] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         post :hide | 
					
						
							|  |  |  |         post :unhide | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-11-28 18:45:13 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-16 01:11:53 +02:00
										 |  |  |   get '/admin', to: redirect('/admin/dashboard', status: 302) | 
					
						
							| 
									
										
										
										
											2017-01-26 18:59:35 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-29 19:42:08 +01:00
										 |  |  |   namespace :api do | 
					
						
							| 
									
										
										
										
											2016-11-28 13:36:47 +01:00
										 |  |  |     # PubSubHubbub outgoing subscriptions | 
					
						
							| 
									
										
										
										
											2016-02-29 19:42:08 +01:00
										 |  |  |     resources :subscriptions, only: [:show] | 
					
						
							|  |  |  |     post '/subscriptions/:id', to: 'subscriptions#update' | 
					
						
							| 
									
										
										
										
											2016-03-07 12:42:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-28 13:36:47 +01:00
										 |  |  |     # PubSubHubbub incoming subscriptions | 
					
						
							|  |  |  |     post '/push', to: 'push#update', as: :push | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-07 12:42:33 +01:00
										 |  |  |     # Salmon | 
					
						
							| 
									
										
										
										
											2016-02-29 19:42:08 +01:00
										 |  |  |     post '/salmon/:id', to: 'salmon#update', as: :salmon | 
					
						
							| 
									
										
										
										
											2016-03-07 12:42:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 23:01:03 +01:00
										 |  |  |     # OEmbed | 
					
						
							|  |  |  |     get '/oembed', to: 'oembed#show', as: :oembed | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-07 12:42:33 +01:00
										 |  |  |     # JSON / REST API | 
					
						
							| 
									
										
										
										
											2016-09-27 16:58:23 +02:00
										 |  |  |     namespace :v1 do | 
					
						
							|  |  |  |       resources :statuses, only: [:create, :show, :destroy] do | 
					
						
							| 
									
										
										
										
											2017-06-09 14:12:40 -04:00
										 |  |  |         scope module: :statuses do | 
					
						
							| 
									
										
										
										
											2017-06-10 03:39:26 -04:00
										 |  |  |           resources :reblogged_by, controller: :reblogged_by_accounts, only: :index | 
					
						
							|  |  |  |           resources :favourited_by, controller: :favourited_by_accounts, only: :index | 
					
						
							|  |  |  |           resource :reblog, only: :create | 
					
						
							|  |  |  |           post :unreblog, to: 'reblogs#destroy' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           resource :favourite, only: :create | 
					
						
							|  |  |  |           post :unfavourite, to: 'favourites#destroy' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           resource :mute, only: :create | 
					
						
							|  |  |  |           post :unmute, to: 'mutes#destroy' | 
					
						
							| 
									
										
										
										
											2017-08-25 01:41:18 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |           resource :pin, only: :create | 
					
						
							|  |  |  |           post :unpin, to: 'pins#destroy' | 
					
						
							| 
									
										
										
										
											2017-06-09 14:12:40 -04:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-27 16:58:23 +02:00
										 |  |  |         member do | 
					
						
							|  |  |  |           get :context | 
					
						
							| 
									
										
										
										
											2017-01-20 01:00:14 +01:00
										 |  |  |           get :card | 
					
						
							| 
									
										
										
										
											2016-09-27 16:58:23 +02:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2016-03-07 13:25:26 +01:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 12:11:39 -04:00
										 |  |  |       namespace :timelines do | 
					
						
							| 
									
										
										
										
											2018-04-18 04:09:06 -07:00
										 |  |  |         resource :direct, only: :show, controller: :direct | 
					
						
							| 
									
										
										
										
											2017-05-23 12:11:39 -04:00
										 |  |  |         resource :home, only: :show, controller: :home | 
					
						
							|  |  |  |         resource :public, only: :show, controller: :public | 
					
						
							|  |  |  |         resources :tag, only: :show | 
					
						
							| 
									
										
										
										
											2017-11-18 00:16:48 +01:00
										 |  |  |         resources :list, only: :show | 
					
						
							| 
									
										
										
										
											2017-05-23 12:11:39 -04:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2017-08-25 01:41:18 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       resources :streaming, only: [:index] | 
					
						
							| 
									
										
										
										
											2017-09-23 01:57:23 +02:00
										 |  |  |       resources :custom_emojis, only: [:index] | 
					
						
							| 
									
										
										
										
											2018-07-07 21:09:54 +02:00
										 |  |  |       resources :suggestions, only: [:index, :destroy] | 
					
						
							| 
									
										
										
										
											2019-01-05 12:43:28 +01:00
										 |  |  |       resources :scheduled_statuses, only: [:index, :show, :update, :destroy] | 
					
						
							| 
									
										
										
										
											2018-10-19 01:47:29 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       resources :conversations, only: [:index, :destroy] do | 
					
						
							|  |  |  |         member do | 
					
						
							|  |  |  |           post :read | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-11-08 23:22:44 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-22 02:32:27 +01:00
										 |  |  |       get '/search', to: 'search#index', as: :search | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-20 18:46:04 +02:00
										 |  |  |       resources :follows,      only: [:create] | 
					
						
							|  |  |  |       resources :media,        only: [:create, :update] | 
					
						
							|  |  |  |       resources :blocks,       only: [:index] | 
					
						
							|  |  |  |       resources :mutes,        only: [:index] | 
					
						
							|  |  |  |       resources :favourites,   only: [:index] | 
					
						
							| 
									
										
										
										
											2018-09-28 02:23:45 +02:00
										 |  |  |       resources :reports,      only: [:create] | 
					
						
							| 
									
										
										
										
											2018-08-20 18:46:04 +02:00
										 |  |  |       resources :filters,      only: [:index, :create, :show, :update, :destroy] | 
					
						
							|  |  |  |       resources :endorsements, only: [:index] | 
					
						
							| 
									
										
										
										
											2017-03-15 23:12:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-30 22:05:42 +02:00
										 |  |  |       namespace :apps do | 
					
						
							|  |  |  |         get :verify_credentials, to: 'credentials#show' | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       resources :apps, only: [:create] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-29 19:52:04 +01:00
										 |  |  |       resource :instance, only: [:show] do | 
					
						
							|  |  |  |         resources :peers, only: [:index], controller: 'instances/peers' | 
					
						
							|  |  |  |         resource :activity, only: [:show], controller: 'instances/activity' | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Account domain blocks (#2381)
* Add <ostatus:conversation /> tag to Atom input/output
Only uses ref attribute (not href) because href would be
the alternate link that's always included also.
Creates new conversation for every non-reply status. Carries
over conversation for every reply. Keeps remote URIs verbatim,
generates local URIs on the fly like the rest of them.
* Conversation muting - prevents notifications that reference a conversation
(including replies, favourites, reblogs) from being created. API endpoints
/api/v1/statuses/:id/mute and /api/v1/statuses/:id/unmute
Currently no way to tell when a status/conversation is muted, so the web UI
only has a "disable notifications" button, doesn't work as a toggle
* Display "Dismiss notifications" on all statuses in notifications column, not just own
* Add "muted" as a boolean attribute on statuses JSON
For now always false on contained reblogs, since it's only relevant for
statuses returned from the notifications endpoint, which are not nested
Remove "Disable notifications" from detailed status view, since it's
only relevant in the notifications column
* Up max class length
* Remove pending test for conversation mute
* Add tests, clean up
* Rename to "mute conversation" and "unmute conversation"
* Raise validation error when trying to mute/unmute status without conversation
* Adding account domain blocks that filter notifications and public timelines
* Add tests for domain blocks in notifications, public timelines
Filter reblogs of blocked domains from home
* Add API for listing and creating account domain blocks
* API for creating/deleting domain blocks, tests for Status#ancestors
and Status#descendants, filter domain blocks from them
* Filter domains in streaming API
* Update account_domain_block_spec.rb
											
										 
											2017-05-19 01:14:30 +02:00
										 |  |  |       resource :domain_blocks, only: [:show, :create, :destroy] | 
					
						
							| 
									
										
										
										
											2016-10-02 16:14:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-26 19:30:45 +01:00
										 |  |  |       resources :follow_requests, only: [:index] do | 
					
						
							|  |  |  |         member do | 
					
						
							|  |  |  |           post :authorize | 
					
						
							|  |  |  |           post :reject | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-23 21:09:27 +01:00
										 |  |  |       resources :notifications, only: [:index, :show] do | 
					
						
							|  |  |  |         collection do | 
					
						
							|  |  |  |           post :clear | 
					
						
							| 
									
										
										
										
											2018-10-07 18:26:26 +02:00
										 |  |  |           post :dismiss # Deprecated | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         member do | 
					
						
							| 
									
										
										
										
											2017-04-22 12:30:35 +12:00
										 |  |  |           post :dismiss | 
					
						
							| 
									
										
										
										
											2017-01-23 21:09:27 +01:00
										 |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-11-20 00:33:02 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-31 15:36:24 -04:00
										 |  |  |       namespace :accounts do | 
					
						
							|  |  |  |         get :verify_credentials, to: 'credentials#show' | 
					
						
							|  |  |  |         patch :update_credentials, to: 'credentials#update' | 
					
						
							|  |  |  |         resource :search, only: :show, controller: :search | 
					
						
							|  |  |  |         resources :relationships, only: :index | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2017-08-25 01:41:18 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-24 19:12:38 +01:00
										 |  |  |       resources :accounts, only: [:create, :show] do | 
					
						
							| 
									
										
										
										
											2017-05-31 15:36:24 -04:00
										 |  |  |         resources :statuses, only: :index, controller: 'accounts/statuses' | 
					
						
							|  |  |  |         resources :followers, only: :index, controller: 'accounts/follower_accounts' | 
					
						
							|  |  |  |         resources :following, only: :index, controller: 'accounts/following_accounts' | 
					
						
							| 
									
										
										
										
											2017-12-12 03:55:39 +01:00
										 |  |  |         resources :lists, only: :index, controller: 'accounts/lists' | 
					
						
							| 
									
										
										
										
											2016-09-27 16:58:23 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         member do | 
					
						
							|  |  |  |           post :follow | 
					
						
							|  |  |  |           post :unfollow | 
					
						
							| 
									
										
										
										
											2016-10-03 18:17:06 +02:00
										 |  |  |           post :block | 
					
						
							|  |  |  |           post :unblock | 
					
						
							| 
									
										
										
										
											2017-02-05 19:51:56 -06:00
										 |  |  |           post :mute | 
					
						
							|  |  |  |           post :unmute | 
					
						
							| 
									
										
										
										
											2016-09-27 16:58:23 +02:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2018-08-09 09:56:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         resource :pin, only: :create, controller: 'accounts/pins' | 
					
						
							|  |  |  |         post :unpin, to: 'accounts/pins#destroy' | 
					
						
							| 
									
										
										
										
											2016-03-07 12:42:33 +01:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2017-11-18 00:16:48 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |       resources :lists, only: [:index, :create, :show, :update, :destroy] do | 
					
						
							|  |  |  |         resource :accounts, only: [:show, :create, :destroy], controller: 'lists/accounts' | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2018-05-11 11:49:12 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       namespace :push do | 
					
						
							| 
									
										
										
										
											2018-05-13 21:07:31 +02:00
										 |  |  |         resource :subscription, only: [:create, :show, :update, :destroy] | 
					
						
							| 
									
										
										
										
											2018-05-11 11:49:12 +02:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-03-07 12:42:33 +01:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-01-09 14:00:55 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-29 02:01:24 +02:00
										 |  |  |     namespace :v2 do | 
					
						
							|  |  |  |       get '/search', to: 'search#index', as: :search | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-09 14:00:55 +01:00
										 |  |  |     namespace :web do | 
					
						
							|  |  |  |       resource :settings, only: [:update] | 
					
						
							| 
									
										
										
										
											2017-08-31 03:38:35 +02:00
										 |  |  |       resource :embed, only: [:create] | 
					
						
							| 
									
										
										
										
											2017-07-13 22:15:32 +02:00
										 |  |  |       resources :push_subscriptions, only: [:create] do | 
					
						
							|  |  |  |         member do | 
					
						
							|  |  |  |           put :update | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2017-01-09 14:00:55 +01:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-02-29 19:42:08 +01:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2016-02-22 16:00:20 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 15:35:36 +01:00
										 |  |  |   get '/web/(*any)', to: 'home#index', as: :web | 
					
						
							| 
									
										
										
										
											2016-11-13 14:01:21 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-09 08:47:25 -04:00
										 |  |  |   get '/about',      to: 'about#show' | 
					
						
							| 
									
										
										
										
											2017-01-13 03:24:41 +01:00
										 |  |  |   get '/about/more', to: 'about#more' | 
					
						
							|  |  |  |   get '/terms',      to: 'about#terms' | 
					
						
							| 
									
										
										
										
											2017-01-20 01:00:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-22 16:00:20 +01:00
										 |  |  |   root 'home#index' | 
					
						
							| 
									
										
										
										
											2016-09-08 02:40:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-09 08:39:41 -04:00
										 |  |  |   match '*unmatched_route', | 
					
						
							| 
									
										
										
										
											2017-08-25 01:41:18 +02:00
										 |  |  |         via: :all, | 
					
						
							|  |  |  |         to: 'application#raise_not_found', | 
					
						
							|  |  |  |         format: false | 
					
						
							| 
									
										
										
										
											2016-02-20 22:53:20 +01:00
										 |  |  | end |