aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorIvan Tashkinov <ivantashkinov@gmail.com>2018-12-04 18:35:57 +0300
committerIvan Tashkinov <ivantashkinov@gmail.com>2018-12-04 18:35:57 +0300
commit826fc446d56b48b67e97144c74bbf74109fb8168 (patch)
tree3c9d30f3c28cb5f30746f55c6b04f4dd0db8d97d /lib
parent88b05aeabb23412530f6b74934bc3d2d3fe8c29f (diff)
downloadpleroma-826fc446d56b48b67e97144c74bbf74109fb8168.tar.gz
[#210] TwitterAPI: implemented /api/media/metadata/create
to allow uploads description (alt text) setting.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/router.ex1
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api_controller.ex18
2 files changed, 18 insertions, 1 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index d6a9d5779..b7c79d2eb 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -324,6 +324,7 @@ defmodule Pleroma.Web.Router do
post("/statusnet/media/upload", TwitterAPI.Controller, :upload)
post("/media/upload", TwitterAPI.Controller, :upload_json)
+ post("/media/metadata/create", TwitterAPI.Controller, :update_media)
post("/favorites/create/:id", TwitterAPI.Controller, :favorite)
post("/favorites/create", TwitterAPI.Controller, :favorite)
diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
index 961250d92..a9e45f91e 100644
--- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex
+++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
@@ -4,7 +4,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
alias Pleroma.Web.TwitterAPI.{TwitterAPI, UserView, ActivityView, NotificationView}
alias Pleroma.Web.CommonAPI
alias Pleroma.Web.CommonAPI.Utils, as: CommonUtils
- alias Pleroma.{Repo, Activity, User, Notification}
+ alias Pleroma.{Repo, Activity, Object, User, Notification}
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.ActivityPub.Utils
alias Ecto.Changeset
@@ -226,6 +226,22 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
end
end
+ @doc "https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-metadata-create"
+ def update_media(%{assigns: %{user: _}} = conn, %{"media_id" => id} = data) do
+ description = get_in(data, ["alt_text", "text"]) || data["name"] || data["description"]
+
+ with %Object{} = object <- Repo.get(Object, id), is_binary(description) do
+ new_data = Map.put(object.data, "name", description)
+
+ change = Object.change(object, %{data: new_data})
+ {:ok, _} = Repo.update(change)
+ end
+
+ conn
+ |> put_status(:no_content)
+ |> json("")
+ end
+
def upload(conn, %{"media" => media}) do
response = TwitterAPI.upload(media)