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>main
parent
34aa5c7cb2
commit
8094955461
|
@ -5,7 +5,7 @@ class ActivityPub::Activity
|
||||||
include Redisable
|
include Redisable
|
||||||
|
|
||||||
SUPPORTED_TYPES = %w(Note Question).freeze
|
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)
|
def initialize(json, account, **options)
|
||||||
@json = json
|
@json = json
|
||||||
|
|
|
@ -104,6 +104,26 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
|
||||||
end
|
end
|
||||||
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
|
context 'with wrong id' do
|
||||||
let(:note) do
|
let(:note) do
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue