diff options
| author | feld <feld@feld.me> | 2024-05-08 17:55:32 +0000 | 
|---|---|---|
| committer | feld <feld@feld.me> | 2024-05-08 17:55:32 +0000 | 
| commit | 6cfb0d7ddbfca5aef79b6da04e1abb1b1a4b59b7 (patch) | |
| tree | 4316769df669c5e1e95e01bac3d48c747d36423d | |
| parent | 8eea4f58c7ae1618aec9f0c6a62e16771c34b787 (diff) | |
| parent | ccceb41bf3f50ce914c16c2a18ec882e97309214 (diff) | |
| download | pleroma-6cfb0d7ddbfca5aef79b6da04e1abb1b1a4b59b7.tar.gz pleroma-6cfb0d7ddbfca5aef79b6da04e1abb1b1a4b59b7.zip | |
Merge branch 'restore/card-img-alt' into 'develop'
Include image description in status media cards
See merge request pleroma/pleroma!4108
| -rw-r--r-- | changelog.d/card-image-description.add | 1 | ||||
| -rw-r--r-- | lib/pleroma/web/api_spec/schemas/status.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/views/status_view.ex | 1 | ||||
| -rw-r--r-- | test/pleroma/web/mastodon_api/views/status_view_test.exs | 25 | 
4 files changed, 27 insertions, 4 deletions
| diff --git a/changelog.d/card-image-description.add b/changelog.d/card-image-description.add new file mode 100644 index 000000000..bf423ebb8 --- /dev/null +++ b/changelog.d/card-image-description.add @@ -0,0 +1 @@ +Include image description in status media cards
\ No newline at end of file diff --git a/lib/pleroma/web/api_spec/schemas/status.ex b/lib/pleroma/web/api_spec/schemas/status.ex index a4052803b..6e537b5da 100644 --- a/lib/pleroma/web/api_spec/schemas/status.ex +++ b/lib/pleroma/web/api_spec/schemas/status.ex @@ -58,6 +58,10 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do              format: :uri,              description: "Preview thumbnail"            }, +          image_description: %Schema{ +            type: :string, +            description: "Alternate text that describes what is in the thumbnail" +          },            title: %Schema{type: :string, description: "Title of linked resource"},            description: %Schema{type: :string, description: "Description of preview"}          } diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 77af69eef..c945290c1 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -583,6 +583,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do        provider_url: page_url_data.scheme <> "://" <> page_url_data.host,        url: page_url,        image: image_url, +      image_description: rich_media["image:alt"] || "",        title: rich_media["title"] || "",        description: rich_media["description"] || "",        pleroma: %{ 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 663610442..1c2d7f7fd 100644 --- a/test/pleroma/web/mastodon_api/views/status_view_test.exs +++ b/test/pleroma/web/mastodon_api/views/status_view_test.exs @@ -738,7 +738,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do        {:ok, card} =          Card.create(page_url, %{image: page_url <> "/example.jpg", title: "Example website"}) -      %{provider_name: "example.com"} = StatusView.render("card.json", card) +      assert match?(%{provider_name: "example.com"}, StatusView.render("card.json", card))      end      test "a rich media card without a site name or image renders correctly" do @@ -751,7 +751,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do        {:ok, card} = Card.create(page_url, fields) -      %{provider_name: "example.com"} = StatusView.render("card.json", card) +      assert match?(%{provider_name: "example.com"}, StatusView.render("card.json", card))      end      test "a rich media card without an image renders correctly" do @@ -765,7 +765,24 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do        {:ok, card} = Card.create(page_url, fields) -      %{provider_name: "example.com"} = StatusView.render("card.json", card) +      assert match?(%{provider_name: "example.com"}, StatusView.render("card.json", card)) +    end + +    test "a rich media card without descriptions returns the fields with empty strings" do +      page_url = "https://example.com" + +      fields = %{ +        "url" => page_url, +        "site_name" => "Example site name", +        "title" => "Example website" +      } + +      {:ok, card} = Card.create(page_url, fields) + +      assert match?( +               %{description: "", image_description: ""}, +               StatusView.render("card.json", card) +             )      end      test "a rich media card with all relevant data renders correctly" do @@ -781,7 +798,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do        {:ok, card} = Card.create(page_url, fields) -      %{provider_name: "example.com"} = StatusView.render("card.json", card) +      assert match?(%{provider_name: "example.com"}, StatusView.render("card.json", card))      end      test "a rich media card has all media proxied" do | 
