Fetch user feed on externalprofile request.
authorRoger Braun <roger@rogerbraun.net>
Sun, 18 Jun 2017 15:20:39 +0000 (17:20 +0200)
committerRoger Braun <roger@rogerbraun.net>
Sun, 18 Jun 2017 15:20:39 +0000 (17:20 +0200)
This is so we always have something to show.

lib/pleroma/web/twitter_api/twitter_api.ex
test/web/twitter_api/twitter_api_test.exs

index 07ac30cb2ad6aba5c0f1d11358e754362b63fd78..8e36ba3f424e6b2b7491b2e6447ba5436f712c68 100644 (file)
@@ -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 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI 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"}
index 6848413cc98d09813b2b2170c9dac46fa1fa1cef..adea67422c08a608c0eb6f0d5bf4a8288b83b9bb 100644 (file)
@@ -353,10 +353,15 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest 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