Browse Source

Add Event activity-type support (#12637)

This adds support for Event AP type in Mastodon. Events are converted
into toots by taking their title (AS name) and their URL (AP ID). Event
picture is also brought in if available.

Testable by fetching event content from https://test.mobilizon.org

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
closed-social-v3
Thomas Citharel 4 years ago
committed by Eugen Rochko
parent
commit
8094955461
2 changed files with 21 additions and 1 deletions
  1. +1
    -1
      app/lib/activitypub/activity.rb
  2. +20
    -0
      spec/services/activitypub/fetch_remote_status_service_spec.rb

+ 1
- 1
app/lib/activitypub/activity.rb View File

@ -5,7 +5,7 @@ class ActivityPub::Activity
include Redisable
SUPPORTED_TYPES = %w(Note Question).freeze
CONVERTED_TYPES = %w(Image Audio Video Article Page).freeze
CONVERTED_TYPES = %w(Image Audio Video Article Page Event).freeze
def initialize(json, account, **options)
@json = json

+ 20
- 0
spec/services/activitypub/fetch_remote_status_service_spec.rb View File

@ -104,6 +104,26 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
end
end
context 'with Event object' do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
id: "https://#{valid_domain}/@foo/1234",
type: 'Event',
name: "Let's change the world",
attributedTo: ActivityPub::TagManager.instance.uri_for(sender)
}
end
it 'creates status' do
status = sender.statuses.first
expect(status).to_not be_nil
expect(status.url).to eq "https://#{valid_domain}/@foo/1234"
expect(strip_tags(status.text)).to eq "Let's change the world https://#{valid_domain}/@foo/1234"
end
end
context 'with wrong id' do
let(:note) do
{

Loading…
Cancel
Save