Skip to content
Snippets Groups Projects
  • Eugen Rochko's avatar
    8c45cd0e
    Improve ActivityPub representations (#3844) · 8c45cd0e
    Eugen Rochko authored
    * 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
    8c45cd0e
    History
    Improve ActivityPub representations (#3844)
    Eugen Rochko authored
    * 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
actor_serializer.rb 833 B
# frozen_string_literal: true

class ActivityPub::ActorSerializer < ActiveModel::Serializer
  include RoutingHelper

  attributes :id, :type, :following, :followers,
             :inbox, :outbox, :preferred_username,
             :name, :summary, :icon, :image

  def id
    account_url(object)
  end

  def type
    'Person'
  end

  def following
    account_following_index_url(object)
  end

  def followers
    account_followers_url(object)
  end

  def inbox
    nil
  end

  def outbox
    account_outbox_url(object)
  end

  def preferred_username
    object.username
  end

  def name
    object.display_name
  end

  def summary
    Formatter.instance.simplified_format(object)
  end

  def icon
    full_asset_url(object.avatar.url(:original))
  end

  def image
    full_asset_url(object.header.url(:original))
  end
end