Verified Commit 2a81734f authored by tusooa's avatar tusooa 🐈
Browse files

Display status link in remote interaction form

parent f4905aa7
<%= if @error do %>
<h2>Error: <%= @error %></h2>
<% else %>
<h2>Interacting with <%= @nickname %></h2>
<div>
<%= @status_id %>
</div>
<h2>Interacting with <%= @nickname %>'s <%= link("status", to: @status_link) %></h2>
<%= form_for @conn, Routes.util_path(@conn, :remote_subscribe), [as: "status"], fn f -> %>
<%= hidden_input f, :status_id, value: @status_id %>
<%= text_input f, :profile, placeholder: "Your account ID, e.g. lain@quitter.se" %>
......
......@@ -58,10 +58,12 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
def show_subscribe_form(conn, %{"status_id" => id}) do
with %Activity{} = activity <- Activity.get_by_id(id),
{:ok, ap_id} <- get_ap_id(activity),
%User{} = user <- User.get_cached_by_ap_id(activity.actor),
avatar = User.avatar_url(user) do
conn
|> render("status_interact.html", %{
status_link: ap_id,
status_id: id,
nickname: user.nickname,
avatar: avatar,
......@@ -101,18 +103,9 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
end
def remote_subscribe(conn, %{"status" => %{"status_id" => id, "profile" => profile}}) do
get_ap_id = fn activity ->
object = Pleroma.Object.normalize(activity, fetch: false)
case object do
%{data: %{"id" => ap_id}} -> {:ok, ap_id}
_ -> {:no_ap_id, nil}
end
end
with {:ok, %{"subscribe_address" => template}} <- WebFinger.finger(profile),
%Activity{} = activity <- Activity.get_by_id(id),
{:ok, ap_id} <- get_ap_id.(activity) do
{:ok, ap_id} <- get_ap_id(activity) do
conn
|> Phoenix.Controller.redirect(external: String.replace(template, "{uri}", ap_id))
else
......@@ -134,6 +127,15 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
end
end
defp get_ap_id(activity) do
object = Pleroma.Object.normalize(activity, fetch: false)
case object do
%{data: %{"id" => ap_id}} -> {:ok, ap_id}
_ -> {:no_ap_id, nil}
end
end
def frontend_configurations(conn, _params) do
render(conn, "frontend_configurations.json")
end
......
......@@ -5,6 +5,7 @@
defmodule Pleroma.Web.TwitterAPI.UtilView do
use Pleroma.Web, :view
import Phoenix.HTML.Form
import Phoenix.HTML.Link
alias Pleroma.Config
alias Pleroma.Web.Endpoint
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment