Improve ActivityPub representations (#3844)
* Improve webfinger templates and make tests more flexible * Clean up AS2 representation of actor * Refactor outbox * Create activities representation * Add representations of followers/following collections, do not redirect /users/:username route if format is empty * Remove unused translations * ActivityPub endpoint for single statuses, add ActivityPub::TagManager for better URL/URI generation * Add ActivityPub::TagManager#to * Represent all attachments as Document instead of Image/Video specifically (Because for remote ones we may not know for sure) Add mentions and hashtags representation to AP notes * Add AP-resolvable hashtag URIs * Use ActiveModelSerializers for ActivityPub * Clean up unused translations * Separate route for object and activity * Adjust cc/to matrices * Add to/cc to activities, ensure announce activity embeds target status and not the wrapper status, add "id" to all collections
This commit is contained in:
parent
3fbf1bf35a
commit
8c45cd0e36
61 changed files with 443 additions and 725 deletions
|
@ -26,7 +26,7 @@ Rails.application.routes.draw do
|
|||
confirmations: 'auth/confirmations',
|
||||
}
|
||||
|
||||
get '/users/:username', to: redirect('/@%{username}'), constraints: { format: :html }
|
||||
get '/users/:username', to: redirect('/@%{username}'), constraints: lambda { |req| req.format.nil? }
|
||||
|
||||
resources :accounts, path: 'users', only: [:show], param: :username do
|
||||
resources :stream_entries, path: 'updates', only: [:show] do
|
||||
|
@ -38,10 +38,17 @@ Rails.application.routes.draw do
|
|||
get :remote_follow, to: 'remote_follow#new'
|
||||
post :remote_follow, to: 'remote_follow#create'
|
||||
|
||||
resources :statuses, only: [:show] do
|
||||
member do
|
||||
get :activity
|
||||
end
|
||||
end
|
||||
|
||||
resources :followers, only: [:index], controller: :follower_accounts
|
||||
resources :following, only: [:index], controller: :following_accounts
|
||||
resource :follow, only: [:create], controller: :account_follow
|
||||
resource :unfollow, only: [:create], controller: :account_unfollow
|
||||
resource :outbox, only: [:show], module: :activitypub
|
||||
end
|
||||
|
||||
get '/@:username', to: 'accounts#show', as: :short_account
|
||||
|
@ -119,13 +126,6 @@ Rails.application.routes.draw do
|
|||
# OEmbed
|
||||
get '/oembed', to: 'oembed#show', as: :oembed
|
||||
|
||||
# ActivityPub
|
||||
namespace :activitypub do
|
||||
get '/users/:id/outbox', to: 'outbox#show', as: :outbox
|
||||
get '/statuses/:id', to: 'activities#show_status', as: :status
|
||||
resources :notes, only: [:show]
|
||||
end
|
||||
|
||||
# JSON / REST API
|
||||
namespace :v1 do
|
||||
resources :statuses, only: [:create, :show, :destroy] do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue