Encode custom emojis as resolveable objects in ActivityPub (#5243)
* Encode custom emojis as resolveable objects in ActivityPub * Improve code style
This commit is contained in:
parent
057db0ecd0
commit
3a3475450e
17 changed files with 132 additions and 48 deletions
|
@ -10,20 +10,6 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
|
|||
|
||||
has_one :public_key, serializer: ActivityPub::PublicKeySerializer
|
||||
|
||||
class ImageSerializer < ActiveModel::Serializer
|
||||
include RoutingHelper
|
||||
|
||||
attributes :type, :url
|
||||
|
||||
def type
|
||||
'Image'
|
||||
end
|
||||
|
||||
def url
|
||||
full_asset_url(object.url(:original))
|
||||
end
|
||||
end
|
||||
|
||||
class EndpointsSerializer < ActiveModel::Serializer
|
||||
include RoutingHelper
|
||||
|
||||
|
@ -36,8 +22,8 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
|
|||
|
||||
has_one :endpoints, serializer: EndpointsSerializer
|
||||
|
||||
has_one :icon, serializer: ImageSerializer, if: :avatar_exists?
|
||||
has_one :image, serializer: ImageSerializer, if: :header_exists?
|
||||
has_one :icon, serializer: ActivityPub::ImageSerializer, if: :avatar_exists?
|
||||
has_one :image, serializer: ActivityPub::ImageSerializer, if: :header_exists?
|
||||
|
||||
def id
|
||||
account_url(object)
|
||||
|
|
29
app/serializers/activitypub/emoji_serializer.rb
Normal file
29
app/serializers/activitypub/emoji_serializer.rb
Normal file
|
@ -0,0 +1,29 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ActivityPub::EmojiSerializer < ActiveModel::Serializer
|
||||
include RoutingHelper
|
||||
|
||||
attributes :id, :type, :name, :updated
|
||||
|
||||
has_one :icon, serializer: ActivityPub::ImageSerializer
|
||||
|
||||
def id
|
||||
ActivityPub::TagManager.instance.uri_for(object)
|
||||
end
|
||||
|
||||
def type
|
||||
'Emoji'
|
||||
end
|
||||
|
||||
def icon
|
||||
object.image
|
||||
end
|
||||
|
||||
def updated
|
||||
object.updated_at.iso8601
|
||||
end
|
||||
|
||||
def name
|
||||
":#{object.shortcode}:"
|
||||
end
|
||||
end
|
19
app/serializers/activitypub/image_serializer.rb
Normal file
19
app/serializers/activitypub/image_serializer.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ActivityPub::ImageSerializer < ActiveModel::Serializer
|
||||
include RoutingHelper
|
||||
|
||||
attributes :type, :media_type, :url
|
||||
|
||||
def type
|
||||
'Image'
|
||||
end
|
||||
|
||||
def url
|
||||
full_asset_url(object.url(:original))
|
||||
end
|
||||
|
||||
def media_type
|
||||
object.content_type
|
||||
end
|
||||
end
|
|
@ -142,21 +142,6 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
|
|||
end
|
||||
end
|
||||
|
||||
class CustomEmojiSerializer < ActiveModel::Serializer
|
||||
include RoutingHelper
|
||||
|
||||
attributes :type, :href, :name
|
||||
|
||||
def type
|
||||
'Emoji'
|
||||
end
|
||||
|
||||
def href
|
||||
full_asset_url(object.image.url)
|
||||
end
|
||||
|
||||
def name
|
||||
":#{object.shortcode}:"
|
||||
end
|
||||
class CustomEmojiSerializer < ActivityPub::EmojiSerializer
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue