Video: Handle peertube videos only stashing attachments in x-mpegURL

Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/2535
This commit is contained in:
Haelwenn (lanodan) Monnier 2021-02-21 23:41:13 +01:00
commit 7fc9cd0974
No known key found for this signature in database
GPG key ID: D5B7A8E43C997DEE
5 changed files with 596 additions and 9 deletions

View file

@ -92,4 +92,34 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.VideoHandlingTest do
assert object.data["url"] ==
"https://framatube.org/videos/watch/6050732a-8a7a-43d4-a6cd-809525a1d206"
end
test "it works for peertube videos with only their mpegURL map" do
data =
File.read!("test/fixtures/peertube/video-object-mpegURL-only.json")
|> Jason.decode!()
{:ok, %Activity{local: false} = activity} = Transmogrifier.handle_incoming(data)
assert object = Object.normalize(activity, fetch: false)
assert object.data["attachment"] == [
%{
"type" => "Link",
"mediaType" => "video/mp4",
"name" => nil,
"blurhash" => nil,
"url" => [
%{
"href" =>
"https://peertube.stream/static/streaming-playlists/hls/abece3c3-b9c6-47f4-8040-f3eed8c602e6/abece3c3-b9c6-47f4-8040-f3eed8c602e6-1080-fragmented.mp4",
"mediaType" => "video/mp4",
"type" => "Link"
}
]
}
]
assert object.data["url"] ==
"https://peertube.stream/videos/watch/abece3c3-b9c6-47f4-8040-f3eed8c602e6"
end
end