소스 검색

Add support for Audio activities (#11189)

Fixes #11127
master^2
ThibG 4 년 전
committed by Eugen Rochko
부모
커밋
915c619394
3개의 변경된 파일36개의 추가작업 그리고 3개의 파일을 삭제
  1. +1
    -1
      app/lib/activitypub/activity.rb
  2. +2
    -2
      app/services/resolve_url_service.rb
  3. +33
    -0
      spec/services/activitypub/fetch_remote_status_service_spec.rb

+ 1
- 1
app/lib/activitypub/activity.rb 파일 보기

@@ -5,7 +5,7 @@ class ActivityPub::Activity
include Redisable

SUPPORTED_TYPES = %w(Note Question).freeze
CONVERTED_TYPES = %w(Image Video Article Page).freeze
CONVERTED_TYPES = %w(Image Audio Video Article Page).freeze

def initialize(json, account, **options)
@json = json


+ 2
- 2
app/services/resolve_url_service.rb 파일 보기

@@ -18,9 +18,9 @@ class ResolveURLService < BaseService
private

def process_url
if equals_or_includes_any?(type, %w(Application Group Organization Person Service))
if equals_or_includes_any?(type, ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES)
FetchRemoteAccountService.new.call(atom_url, body, protocol)
elsif equals_or_includes_any?(type, %w(Note Article Image Video Page Question))
elsif equals_or_includes_any?(type, ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES)
FetchRemoteStatusService.new.call(atom_url, body, protocol)
end
end


+ 33
- 0
spec/services/activitypub/fetch_remote_status_service_spec.rb 파일 보기

@@ -71,6 +71,39 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
end
end

context 'with Audio object' do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
id: "https://#{valid_domain}/@foo/1234",
type: 'Audio',
name: 'Nyan Cat 10 hours remix',
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
url: [
{
type: 'Link',
mimeType: 'application/x-bittorrent',
href: "https://#{valid_domain}/12345.torrent",
},

{
type: 'Link',
mimeType: 'text/html',
href: "https://#{valid_domain}/watch?v=12345",
},
],
}
end

it 'creates status' do
status = sender.statuses.first

expect(status).to_not be_nil
expect(status.url).to eq "https://#{valid_domain}/watch?v=12345"
expect(strip_tags(status.text)).to eq "Nyan Cat 10 hours remix https://#{valid_domain}/watch?v=12345"
end
end

context 'with wrong id' do
let(:note) do
{


불러오는 중...
취소
저장