X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fmastodon_api%2Fmastodon_api_controller.ex;h=a01a199fb8a2f1d83c76f8c206ee618cf3127483;hb=b4f055b60416986220d905bbf688f8417cd8a270;hp=fcc87d414543d7e42ca895ac2a6755965388da95;hpb=73bdfd6c2b92533b5d48c2801a8e6548e8a2551a;p=akkoma diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index fcc87d414..a01a199fb 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -77,7 +77,10 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do end def home_timeline(%{assigns: %{user: user}} = conn, params) do - activities = ActivityPub.fetch_activities([user.ap_id | user.following], Map.put(params, "type", "Create")) + params = params + |> Map.put("type", ["Create", "Announce"]) + + activities = ActivityPub.fetch_activities([user.ap_id | user.following], params) |> Enum.reverse conn @@ -87,7 +90,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do def public_timeline(%{assigns: %{user: user}} = conn, params) do params = params - |> Map.put("type", "Create") + |> Map.put("type", ["Create", "Announce"]) |> Map.put("local_only", !!params["local"]) activities = ActivityPub.fetch_public_activities(params) @@ -102,7 +105,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do def user_statuses(%{assigns: %{user: user}} = conn, params) do with %User{ap_id: ap_id} <- Repo.get(User, params["id"]) do params = params - |> Map.put("type", "Create") + |> Map.put("type", ["Create", "Announce"]) |> Map.put("actor_id", ap_id) activities = ActivityPub.fetch_activities([], params) @@ -287,7 +290,11 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do end end - def search(%{assigns: %{user: user}} = conn, %{"q" => query}) do + def search(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do + if params["resolve"] == "true" do + User.get_or_fetch_by_nickname(query) + end + q = from u in User, where: fragment("(to_tsvector('english', ?) || to_tsvector('english', ?)) @@ plainto_tsquery('english', ?)", u.nickname, u.name, ^query), limit: 20 @@ -308,6 +315,18 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do json(conn, res) end + def favourites(%{assigns: %{user: user}} = conn, params) do + params = conn + |> Map.put("type", "Create") + |> Map.put("favorited_by", user.ap_id) + + activities = ActivityPub.fetch_activities([], params) + |> Enum.reverse + + conn + |> render(StatusView, "index.json", %{activities: activities, for: user, as: :activity}) + end + def relationship_noop(%{assigns: %{user: user}} = conn, %{"id" => id}) do Logger.debug("Unimplemented, returning unmodified relationship") with %User{} = target <- Repo.get(User, id) do