Skip to content
Snippets Groups Projects
Commit d00571ff authored by lain's avatar lain
Browse files

Fetch user feed on externalprofile request.

This is so we always have something to show.
parent fafb765c
Branches
No related tags found
No related merge requests found
......@@ -9,6 +9,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
import Ecto.Query
import Pleroma.Web.TwitterAPI.Utils
@httpoison Application.get_env(:pleroma, :httpoison)
def to_for_user_and_mentions(user, mentions, inReplyTo) do
default_to = [
User.ap_followers(user),
......@@ -298,6 +300,10 @@ def conversation_id_to_context(id) do
def get_external_profile(for_user, uri) do
with {:ok, %User{} = user} <- OStatus.find_or_make_user(uri) do
with url <- user.info["topic"],
{:ok, %{body: body}} <- @httpoison.get(url, [], follow_redirect: true, timeout: 10000, recv_timeout: 20000) do
OStatus.handle_incoming(body)
end
{:ok, UserRepresenter.to_map(user, %{for: for_user})}
else _e ->
{:error, "Couldn't find user"}
......
......@@ -353,10 +353,15 @@ test "returns an existing mapping for an existing object" do
describe "fetching a user by uri" do
test "fetches a user by uri" do
id = "https://mastodon.social/users/lambadalambda"
user = insert(:user)
{:ok, represented} = TwitterAPI.get_external_profile(user, id)
remote = User.get_by_ap_id(id)
{:ok, represented} = TwitterAPI.get_external_profile(user, user.ap_id)
assert represented = UserRepresenter.to_map(user, %{for: user})
assert represented == UserRepresenter.to_map(remote, %{for: user})
# Also fetches the feed.
assert Activity.get_create_activity_by_object_ap_id("tag:mastodon.social,2017-04-05:objectId=1641750:objectType=Status")
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment