mastodon api: use OGP uri instead of page_url for deducing domain name, fix test
authorWilliam Pitcock <nenolod@dereferenced.org>
Sat, 26 Jan 2019 15:20:27 +0000 (15:20 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Sat, 26 Jan 2019 15:24:16 +0000 (15:24 +0000)
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
test/web/mastodon_api/mastodon_api_controller_test.exs

index ae744da60ad668915b7707eb4adfb87e5e3c8725..a60532b551b4264f75f46598dc71b937337b8f0c 100644 (file)
@@ -1329,12 +1329,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
          %Object{} = object <- Object.normalize(activity.data["object"]),
          page_url <- HTML.extract_first_external_url(object, object.data["content"]),
          {:ok, rich_media} <- Pleroma.Web.RichMedia.Parser.parse(page_url) do
+      page_url = rich_media[:url] || page_url
       site_name = rich_media[:site_name] || URI.parse(page_url).host
 
       rich_media
-      |> Map.take([:image, :title, :url, :description])
+      |> Map.take([:image, :title, :description])
       |> Map.put(:type, "link")
       |> Map.put(:provider_name, site_name)
+      |> Map.put(:url, page_url)
     else
       _ -> %{}
     end
index bc87383f7dbe53387ebef9748bbaf5dbf197b5a9..55e778e4f906527c12b1305a680bd6c9e1688007 100644 (file)
@@ -1634,6 +1634,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
 
       assert response == %{
                "image" => "http://ia.media-imdb.com/images/rock.jpg",
+               "provider_name" => "www.imdb.com",
                "title" => "The Rock",
                "type" => "link",
                "url" => "http://www.imdb.com/title/tt0117500/"