From cd522d2139d999adf36705250084662e56a70d0d Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Fri, 30 Jun 2017 16:53:25 +0200 Subject: [PATCH] Also fetch posts by id in fav/rts. --- lib/pleroma/web/twitter_api/twitter_api_controller.ex | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 56b2f7cfa..c16c76951 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -128,8 +128,12 @@ def upload_json(conn, %{"media" => media}) do |> json_reply(200, response) end + def get_by_id_or_ap_id(id) do + Repo.get(Activity, id) || Activity.get_create_activity_by_object_ap_id(id) + end + def favorite(%{assigns: %{user: user}} = conn, %{"id" => id}) do - activity = Repo.get(Activity, id) + activity = get_by_id_or_ap_id(id) {:ok, status} = TwitterAPI.favorite(user, activity) response = Poison.encode!(status) @@ -138,7 +142,7 @@ def favorite(%{assigns: %{user: user}} = conn, %{"id" => id}) do end def unfavorite(%{assigns: %{user: user}} = conn, %{"id" => id}) do - activity = Repo.get(Activity, id) + activity = get_by_id_or_ap_id(id) {:ok, status} = TwitterAPI.unfavorite(user, activity) response = Poison.encode!(status) @@ -147,7 +151,7 @@ def unfavorite(%{assigns: %{user: user}} = conn, %{"id" => id}) do end def retweet(%{assigns: %{user: user}} = conn, %{"id" => id}) do - activity = Repo.get(Activity, id) + activity = get_by_id_or_ap_id(id) if activity.data["actor"] == user.ap_id do bad_request_reply(conn, "You cannot repeat your own notice.") else