From 29be70c0082ea09f03896c7e52e2b8a9cdbea641 Mon Sep 17 00:00:00 2001 From: eal Date: Fri, 2 Feb 2018 00:00:48 +0200 Subject: Add remote following of local profiles. --- .../web/twitter_api/controllers/util_controller.ex | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'lib/pleroma/web/twitter_api/controllers/util_controller.ex') diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex index a1d56e3ab..0b7c64015 100644 --- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex @@ -3,6 +3,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do require Logger alias Pleroma.Web alias Pleroma.Web.OStatus + alias Pleroma.Web.WebFinger alias Comeonin.Pbkdf2 alias Pleroma.Formatter alias Pleroma.Web.ActivityPub.ActivityPub @@ -32,6 +33,26 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do json(conn, "ok") end + def remote_subscribe(conn, %{"nickname" => nick, "profile" => _}) do + with %User{} = user <- User.get_cached_by_nickname(nick), + avatar = User.avatar_url(user) do + conn + |> render("subscribe.html", %{nickname: nick, avatar: avatar, error: false}) + else + _e -> render(conn, "subscribe.html", %{nickname: nick, avatar: nil, error: "Could not find user"}) + end + end + def remote_subscribe(conn, %{"user" => %{"nickname" => nick, "profile" => profile}}) do + with {:ok, %{"subscribe_address" => template}} <- WebFinger.finger(profile), + %User{ap_id: ap_id} <- User.get_cached_by_nickname(nick) do + conn + |> Phoenix.Controller.redirect(external: String.replace(template, "{uri}", ap_id)) + else + _e -> + render(conn, "subscribe.html", %{nickname: nick, avatar: nil, error: "Something went wrong."}) + end + end + def remote_follow(%{assigns: %{user: user}} = conn, %{"acct" => acct}) do {err, followee} = OStatus.find_or_make_user(acct) avatar = User.avatar_url(followee) -- cgit v1.2.3