summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfeld <feld@feld.me>2024-05-08 17:55:32 +0000
committerfeld <feld@feld.me>2024-05-08 17:55:32 +0000
commit6cfb0d7ddbfca5aef79b6da04e1abb1b1a4b59b7 (patch)
tree4316769df669c5e1e95e01bac3d48c747d36423d
parent8eea4f58c7ae1618aec9f0c6a62e16771c34b787 (diff)
parentccceb41bf3f50ce914c16c2a18ec882e97309214 (diff)
downloadpleroma-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.add1
-rw-r--r--lib/pleroma/web/api_spec/schemas/status.ex4
-rw-r--r--lib/pleroma/web/mastodon_api/views/status_view.ex1
-rw-r--r--test/pleroma/web/mastodon_api/views/status_view_test.exs25
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