get "/emoji", UtilController, :emoji
end
+ scope "/api/pleroma", Pleroma.Web.TwitterAPI do
+ pipe_through :authenticated_api
+ post "/follow_import", UtilController, :follow_import
+ end
+
scope "/oauth", Pleroma.Web.OAuth do
get "/authorize", OAuthController, :authorize
post "/authorize", OAuthController, :create_authorization
use Pleroma.Web, :controller
alias Pleroma.Web
alias Pleroma.Formatter
-
+ alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.{Repo, PasswordResetToken, User}
def show_password_reset(conn, %{"token" => token}) do
def emoji(conn, _params) do
json conn, Enum.into(Formatter.get_custom_emoji(), %{})
end
+
+ def follow_import(%{assigns: %{user: user}} = conn, %{"list" => list}) do
+ errors = list
+ |> String.split()
+ |> Enum.map(fn nick ->
+ with %User{} = follower <- User.get_cached_by_ap_id(user.ap_id),
+ %User{} = followed <- User.get_or_fetch_by_nickname(nick),
+ {:ok, follower} <- User.follow(follower, followed),
+ {:ok, _activity} <- ActivityPub.follow(follower, followed) do
+ :ok
+ else
+ _e -> nick
+ end
+ end)
+ |> Enum.reject(fn x -> x == :ok end)
+
+ json conn, %{"failed follows" => errors}
+ end
end