add support for all status type (ostatus) and replase case with if

stable
Sachin Joshi 6 years ago
parent 6386c1c9c1
commit f20e8d28de

@ -74,38 +74,39 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
end end
def remote_follow(%{assigns: %{user: user}} = conn, %{"acct" => acct}) do def remote_follow(%{assigns: %{user: user}} = conn, %{"acct" => acct}) do
case is_status?(acct) do if is_status?(acct) do
true -> {:ok, object} = ActivityPub.fetch_object_from_id(acct)
{:ok, object} = ActivityPub.fetch_object_from_id(acct) %Activity{id: activity_id} = Activity.get_create_by_object_ap_id(object.data["id"])
%Activity{id: activity_id} = Activity.get_create_by_object_ap_id(object.data["id"]) redirect(conn, to: "/notice/#{activity_id}")
redirect(conn, to: "/notice/#{activity_id}") else
{err, followee} = OStatus.find_or_make_user(acct)
false -> avatar = User.avatar_url(followee)
{err, followee} = OStatus.find_or_make_user(acct) name = followee.nickname
avatar = User.avatar_url(followee) id = followee.id
name = followee.nickname
id = followee.id if !!user do
conn
if !!user do |> render("follow.html", %{error: err, acct: acct, avatar: avatar, name: name, id: id})
conn else
|> render("follow.html", %{error: err, acct: acct, avatar: avatar, name: name, id: id}) conn
else |> render("follow_login.html", %{
conn error: false,
|> render("follow_login.html", %{ acct: acct,
error: false, avatar: avatar,
acct: acct, name: name,
avatar: avatar, id: id
name: name, })
id: id end
})
end
end end
end end
defp is_status?(acct) do defp is_status?(acct) do
case ActivityPub.fetch_and_contain_remote_object_from_id(acct) do case ActivityPub.fetch_and_contain_remote_object_from_id(acct) do
{:ok, %{"type" => "Note"}} -> true {:ok, %{"type" => type}} when type in ["Article", "Note", "Video", "Page", "Question"] ->
_ -> false true
_ ->
false
end end
end end

Loading…
Cancel
Save