Add published property to ActivityPub activity for reblogs (#5000)

Since reblogs are serialized as Announce activity, its published property can be used for the creation time of reblog.
rebase/4.0.0rc2
unarist 2017-09-19 03:30:11 +09:00 committed by Eugen Rochko
parent dcf1139ebd
commit 17bf3363ac
2 changed files with 11 additions and 2 deletions

View File

@ -11,7 +11,12 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity
return status unless status.nil? return status unless status.nil?
status = Status.create!(account: @account, reblog: original_status, uri: @json['id']) status = Status.create!(
account: @account,
reblog: original_status,
uri: @json['id'],
created_at: @json['published'] || Time.now.utc
)
distribute(status) distribute(status)
status status
end end

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
class ActivityPub::ActivitySerializer < ActiveModel::Serializer class ActivityPub::ActivitySerializer < ActiveModel::Serializer
attributes :id, :type, :actor, :to, :cc attributes :id, :type, :actor, :published, :to, :cc
has_one :proper, key: :object, serializer: ActivityPub::NoteSerializer has_one :proper, key: :object, serializer: ActivityPub::NoteSerializer
@ -17,6 +17,10 @@ class ActivityPub::ActivitySerializer < ActiveModel::Serializer
ActivityPub::TagManager.instance.uri_for(object.account) ActivityPub::TagManager.instance.uri_for(object.account)
end end
def published
object.created_at.iso8601
end
def to def to
ActivityPub::TagManager.instance.to(object) ActivityPub::TagManager.instance.to(object)
end end