diff options
7 files changed, 14 insertions, 4 deletions
diff --git a/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex b/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex index df102a134..f96fd54bf 100644 --- a/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex @@ -15,6 +15,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator do      field(:type, :string)      field(:mediaType, :string, default: "application/octet-stream")      field(:name, :string) +    field(:blurhash, :string)      embeds_many :url, UrlObjectValidator, primary_key: false do        field(:type, :string) @@ -41,7 +42,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator do        |> fix_url()      struct -    |> cast(data, [:type, :mediaType, :name]) +    |> cast(data, [:type, :mediaType, :name, :blurhash])      |> cast_embed(:url, with: &url_changeset/2)      |> validate_inclusion(:type, ~w[Link Document Audio Image Video])      |> validate_required([:type, :mediaType, :url]) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 39c8f7e39..0bcd1db22 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -252,6 +252,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do            }            |> Maps.put_if_present("mediaType", media_type)            |> Maps.put_if_present("name", data["name"]) +          |> Maps.put_if_present("blurhash", data["blurhash"])          else            nil          end diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 435bcde15..7cbbd3750 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -435,7 +435,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do        text_url: href,        type: type,        description: attachment["name"], -      pleroma: %{mime_type: media_type} +      pleroma: %{mime_type: media_type}, +      blurhash: attachment["blurhash"]      }    end diff --git a/test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs b/test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs index 760388e80..2e1975a79 100644 --- a/test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs +++ b/test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs @@ -33,7 +33,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidatorTest do            "http://mastodon.example.org/system/media_attachments/files/000/000/002/original/334ce029e7bfb920.jpg",          "type" => "Document",          "name" => nil, -        "mediaType" => "image/jpeg" +        "mediaType" => "image/jpeg", +        "blurhash" => "UD9jJz~VSbR#xT$~%KtQX9R,WAs9RjWBs:of"        }        {:ok, attachment} = @@ -50,6 +51,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidatorTest do               ] = attachment.url        assert attachment.mediaType == "image/jpeg" +      assert attachment.blurhash == "UD9jJz~VSbR#xT$~%KtQX9R,WAs9RjWBs:of"      end      test "it handles our own uploads" do diff --git a/test/pleroma/web/activity_pub/transmogrifier/audio_handling_test.exs b/test/pleroma/web/activity_pub/transmogrifier/audio_handling_test.exs index 0636d00c5..eef7ab4c6 100644 --- a/test/pleroma/web/activity_pub/transmogrifier/audio_handling_test.exs +++ b/test/pleroma/web/activity_pub/transmogrifier/audio_handling_test.exs @@ -69,6 +69,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.AudioHandlingTest do                 "mediaType" => "audio/ogg",                 "type" => "Link",                 "name" => nil, +               "blurhash" => nil,                 "url" => [                   %{                     "href" => diff --git a/test/pleroma/web/activity_pub/transmogrifier/video_handling_test.exs b/test/pleroma/web/activity_pub/transmogrifier/video_handling_test.exs index 69c953a2e..57411fafa 100644 --- a/test/pleroma/web/activity_pub/transmogrifier/video_handling_test.exs +++ b/test/pleroma/web/activity_pub/transmogrifier/video_handling_test.exs @@ -54,6 +54,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.VideoHandlingTest do                 "type" => "Link",                 "mediaType" => "video/mp4",                 "name" => nil, +               "blurhash" => nil,                 "url" => [                   %{                     "href" => @@ -76,6 +77,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.VideoHandlingTest do                 "type" => "Link",                 "mediaType" => "video/mp4",                 "name" => nil, +               "blurhash" => nil,                 "url" => [                   %{                     "href" => diff --git a/test/pleroma/web/mastodon_api/views/status_view_test.exs b/test/pleroma/web/mastodon_api/views/status_view_test.exs index 70d829979..665199f97 100644 --- a/test/pleroma/web/mastodon_api/views/status_view_test.exs +++ b/test/pleroma/web/mastodon_api/views/status_view_test.exs @@ -420,6 +420,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do            "href" => "someurl"          }        ], +      "blurhash" => "UJJ8X[xYW,%Jtq%NNFbXB5j]IVM|9GV=WHRn",        "uuid" => 6      } @@ -431,7 +432,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do        preview_url: "someurl",        text_url: "someurl",        description: nil, -      pleroma: %{mime_type: "image/png"} +      pleroma: %{mime_type: "image/png"}, +      blurhash: "UJJ8X[xYW,%Jtq%NNFbXB5j]IVM|9GV=WHRn"      }      api_spec = Pleroma.Web.ApiSpec.spec()  | 
