forked from AkkomaGang/akkoma
Add follow import.
This commit is contained in:
parent
d5a13c10ac
commit
39ccfdc084
2 changed files with 24 additions and 1 deletions
|
@ -51,6 +51,11 @@ def user_fetcher(username) do
|
||||||
get "/emoji", UtilController, :emoji
|
get "/emoji", UtilController, :emoji
|
||||||
end
|
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
|
scope "/oauth", Pleroma.Web.OAuth do
|
||||||
get "/authorize", OAuthController, :authorize
|
get "/authorize", OAuthController, :authorize
|
||||||
post "/authorize", OAuthController, :create_authorization
|
post "/authorize", OAuthController, :create_authorization
|
||||||
|
|
|
@ -2,7 +2,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
|
||||||
use Pleroma.Web, :controller
|
use Pleroma.Web, :controller
|
||||||
alias Pleroma.Web
|
alias Pleroma.Web
|
||||||
alias Pleroma.Formatter
|
alias Pleroma.Formatter
|
||||||
|
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||||
alias Pleroma.{Repo, PasswordResetToken, User}
|
alias Pleroma.{Repo, PasswordResetToken, User}
|
||||||
|
|
||||||
def show_password_reset(conn, %{"token" => token}) do
|
def show_password_reset(conn, %{"token" => token}) do
|
||||||
|
@ -73,4 +73,22 @@ def version(conn, _params) do
|
||||||
def emoji(conn, _params) do
|
def emoji(conn, _params) do
|
||||||
json conn, Enum.into(Formatter.get_custom_emoji(), %{})
|
json conn, Enum.into(Formatter.get_custom_emoji(), %{})
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Reference in a new issue