50 lines
1.8 KiB
Ruby
50 lines
1.8 KiB
Ruby
Nokogiri::XML::Builder.new do |xml|
|
|
feed(xml) do
|
|
simple_id xml, atom_user_stream_url(id: @account.id)
|
|
title xml, @account.display_name
|
|
subtitle xml, @account.note
|
|
updated_at xml, stream_updated_at
|
|
|
|
author(xml) do
|
|
object_type xml, :person
|
|
uri xml, profile_url(name: @account.username)
|
|
name xml, @account.username
|
|
summary xml, @account.note
|
|
link_alternate xml, profile_url(name: @account.username)
|
|
portable_contact xml, @account
|
|
end
|
|
|
|
link_alternate xml, profile_url(name: @account.username)
|
|
link_self xml, atom_user_stream_url(id: @account.id)
|
|
link_hub xml, HUB_URL
|
|
link_salmon xml, salmon_url(@account)
|
|
|
|
@account.stream_entries.order('id desc').each do |stream_entry|
|
|
entry(xml, false) do
|
|
unique_id xml, stream_entry.created_at, stream_entry.activity_id, stream_entry.activity_type
|
|
published_at xml, stream_entry.activity.created_at
|
|
updated_at xml, stream_entry.activity.updated_at
|
|
title xml, stream_entry.title
|
|
content xml, stream_entry.content
|
|
verb xml, stream_entry.verb
|
|
link_self xml, atom_entry_url(id: stream_entry.id)
|
|
|
|
if stream_entry.targeted?
|
|
target(xml) do
|
|
object_type xml, stream_entry.target.object_type
|
|
simple_id xml, stream_entry.target.uri
|
|
title xml, stream_entry.target.title
|
|
summary xml, stream_entry.target.summary
|
|
link_alternate xml, stream_entry.target.uri
|
|
|
|
if stream_entry.target.object_type == :person
|
|
portable_contact xml, stream_entry.target
|
|
end
|
|
end
|
|
else
|
|
object_type xml, stream_entry.object_type
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end.to_xml
|