From 4a6d48b0fe991b68b555c75faca095725aff487b Mon Sep 17 00:00:00 2001 From: Roger Braun <roger@rogerbraun.net> Date: Thu, 30 Mar 2017 16:08:23 +0200 Subject: [PATCH] Return mimetype with attachment. --- lib/pleroma/upload.ex | 6 +++++- lib/pleroma/web/twitter_api/twitter_api.ex | 10 +++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex index 158656e92..d22421d37 100644 --- a/lib/pleroma/upload.ex +++ b/lib/pleroma/upload.ex @@ -8,7 +8,11 @@ def store(%Plug.Upload{} = file) do %{ "type" => "Image", - "href" => url_for(Path.join(uuid, file.filename)), + "url" => [%{ + "type" => "Link", + "mediaType" => file.content_type, + "href" => url_for(Path.join(uuid, file.filename)) + }], "name" => file.filename, "uuid" => uuid } diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index b6e7d5cc6..0624e73aa 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -99,6 +99,10 @@ def unfollow(%User{} = follower, followed_id) do def upload(%Plug.Upload{} = file) do {:ok, object} = ActivityPub.upload(file) + url = List.first(object.data["url"]) + href = url["href"] + type = url["mediaType"] + # Fake this as good as possible... """ <?xml version="1.0" encoding="UTF-8"?> @@ -106,9 +110,9 @@ def upload(%Plug.Upload{} = file) do <mediaid>#{object.id}</mediaid> <media_id>#{object.id}</media_id> <media_id_string>#{object.id}</media_id_string> - <media_url>#{object.data["href"]}</media_url> - <mediaurl>#{object.data["href"]}</mediaurl> - <atom:link rel="enclosure" href="#{object.data["href"]}" type="image"></atom:link> + <media_url>#{href}</media_url> + <mediaurl>#{href}</mediaurl> + <atom:link rel="enclosure" href="#{href}" type="#{type}"></atom:link> </rsp> """ end