0
0
Fork 0

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:
Eugen Rochko 2017-10-07 17:43:42 +02:00 committed by GitHub
parent 057db0ecd0
commit 3a3475450e
17 changed files with 132 additions and 48 deletions

View file

@ -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)

View 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

View 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

View file

@ -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