logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 6f6bede9003fc99b24356f06aebfc5dabe54c46c
parent 987f44d81142e11b008659f3fbdf9baf69a1e9d8
Author: marcin mikołajczak <git@mkljczk.pl>
Date:   Thu,  4 Apr 2024 14:26:55 +0200

Include image description in status media cards

Signed-off-by: marcin mikołajczak <git@mkljczk.pl>

Diffstat:

Achangelog.d/card-image-description.add2++
Mlib/pleroma/web/api_spec/schemas/status.ex4++++
Mlib/pleroma/web/mastodon_api/views/status_view.ex1+
Mtest/pleroma/web/mastodon_api/controllers/status_controller_test.exs2++
Mtest/pleroma/web/mastodon_api/views/status_view_test.exs3++-
5 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/changelog.d/card-image-description.add 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 @@ -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 @@ -589,6 +589,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/controllers/status_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/status_controller_test.exs @@ -1717,6 +1717,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do card_data = %{ "image" => "http://ia.media-imdb.com/images/rock.jpg", + "image_description" => "", "provider_name" => "example.com", "provider_url" => "https://example.com", "title" => "The Rock", @@ -1770,6 +1771,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do "title" => "Pleroma", "description" => "", "image" => nil, + "image_description" => "", "provider_name" => "example.com", "provider_url" => "https://example.com", "url" => "https://example.com/ogp-missing-data", diff --git a/test/pleroma/web/mastodon_api/views/status_view_test.exs b/test/pleroma/web/mastodon_api/views/status_view_test.exs @@ -773,6 +773,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do page_url = "http://example.com" card = %{ + "image:alt" => "Example image description", url: page_url, site_name: "Example site name", title: "Example website", @@ -780,7 +781,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do description: "Example description" } - %{provider_name: "example.com"} = + %{provider_name: "example.com", image_description: "Example image description"} = StatusView.render("card.json", %{page_url: page_url, rich_media: card}) end