You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.5 KiB
35 lines
1.5 KiB
Nokogiri::XML::Builder.new do |xml| |
|
xml.feed(xmlns: 'http://www.w3.org/2005/Atom', 'xmlns:thr': 'http://purl.org/syndication/thread/1.0', 'xmlns:activity': 'http://activitystrea.ms/spec/1.0/') do |
|
xml.id_ atom_user_stream_url(id: @account.id) |
|
xml.title @account.display_name |
|
xml.subtitle @account.note |
|
xml.updated stream_updated_at |
|
|
|
xml.author do |
|
xml['activity'].send('object-type', 'http://activitystrea.ms/schema/1.0/person') |
|
xml.uri profile_url(name: @account.username) |
|
xml.name @account.username |
|
xml.summary @account.note |
|
|
|
xml.link(rel: 'alternate', type: 'text/html', href: profile_url(name: @account.username)) |
|
end |
|
|
|
xml.link(rel: 'alternate', type: 'text/html', href: profile_url(name: @account.username)) |
|
xml.link(rel: 'hub', href: '') |
|
xml.link(rel: 'salmon', href: salmon_url(@account)) |
|
xml.link(rel: 'self', type: 'application/atom+xml', href: atom_user_stream_url(id: @account.id)) |
|
|
|
@account.stream_entries.each do |stream_entry| |
|
xml.entry do |
|
xml.id_ unique_tag(stream_entry.created_at, stream_entry.activity_id, stream_entry.activity_type) |
|
xml.published stream_entry.activity.created_at.iso8601 |
|
xml.updated stream_entry.activity.updated_at.iso8601 |
|
xml.content({ type: 'html' }, stream_entry.content) |
|
xml.title |
|
|
|
xml['activity'].send('verb', "http://activitystrea.ms/schema/1.0/#{stream_entry.verb}") |
|
xml['activity'].send('object-type', "http://activitystrea.ms/schema/1.0/#{stream_entry.object_type}") |
|
end |
|
end |
|
end |
|
end.to_xml
|
|
|