Allow ActivityPub Note's tag and attachment to be single objects (#5534)

remotes/1727458204337373841/tmp_refs/heads/signup-info-prompt
puckipedia 2017-10-27 16:10:36 +02:00 committed by Eugen Rochko
parent 0129f5eada
commit 0cb329f63a
2 changed files with 8 additions and 4 deletions

View File

@ -9,6 +9,10 @@ module JsonLdHelper
value.is_a?(Array) ? value.first : value
end
def as_array(value)
value.is_a?(Array) ? value : [value]
end
def value_or_id(value)
value.is_a?(String) || value.nil? ? value : value['id']
end

View File

@ -53,9 +53,9 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def process_tags(status)
return unless @object['tag'].is_a?(Array)
return if @object['tag'].nil?
@object['tag'].each do |tag|
as_array(@object['tag']).each do |tag|
case tag['type']
when 'Hashtag'
process_hashtag tag, status
@ -103,9 +103,9 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def process_attachments(status)
return unless @object['attachment'].is_a?(Array)
return if @object['attachment'].nil?
@object['attachment'].each do |attachment|
as_array(@object['attachment']).each do |attachment|
next if unsupported_media_type?(attachment['mediaType']) || attachment['url'].blank?
href = Addressable::URI.parse(attachment['url']).normalize.to_s