Revert "Add remote follow pages."
[akkoma] / lib / pleroma / web / twitter_api / controllers / util_controller.ex
index 792ae2a649578957f30a12fd8168c06b2b6c2553..9d56549952c3695315ab25cb267a8b5542006e94 100644 (file)
@@ -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
@@ -71,6 +72,26 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
   end
 
   def emoji(conn, _params) do
-    json conn, Formatter.get_custom_emoji()
+    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(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