forked from AkkomaGang/akkoma
Merge branch 'feature/follow-import' into 'develop'
Add follow import. See merge request pleroma/pleroma!40
This commit is contained in:
commit
6b48489237
2 changed files with 27 additions and 1 deletions
|
@ -51,6 +51,11 @@ def user_fetcher(username) do
|
|||
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
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
defmodule Pleroma.Web.TwitterAPI.UtilController do
|
||||
use Pleroma.Web, :controller
|
||||
require Logger
|
||||
alias Pleroma.Web
|
||||
alias Pleroma.Formatter
|
||||
|
||||
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||
alias Pleroma.{Repo, PasswordResetToken, User}
|
||||
|
||||
def show_password_reset(conn, %{"token" => token}) do
|
||||
|
@ -73,4 +74,24 @@ def version(conn, _params) do
|
|||
def emoji(conn, _params) do
|
||||
json conn, Enum.into(Formatter.get_custom_emoji(), %{})
|
||||
end
|
||||
|
||||
def follow_import(conn, %{"list" => %Plug.Upload{} = listfile}) do
|
||||
follow_import(conn, %{"list" => File.read!(listfile.path)})
|
||||
end
|
||||
def follow_import(%{assigns: %{user: user}} = conn, %{"list" => list}) do
|
||||
Task.start_link(fn ->
|
||||
String.split(list)
|
||||
|> 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) do
|
||||
ActivityPub.follow(follower, followed)
|
||||
else
|
||||
_e -> Logger.debug "follow_import: following #{nick} failed"
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
json conn, "job started"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue