Longer timeouts for outgoing federation.
[akkoma] / lib / pleroma / user.ex
index 22e77c3df092ad3e9c455abe0a8ee0fcaaad4bb0..869a3eb1b5b77352b41b3920da7072ab488a2eeb 100644 (file)
@@ -6,6 +6,7 @@ defmodule Pleroma.User do
   alias Comeonin.Pbkdf2
   alias Pleroma.Web.{OStatus, Websub}
   alias Pleroma.Web.ActivityPub.ActivityPub
+  alias Pleroma.Web.ActivityPub.Utils
 
   schema "users" do
     field :bio, :string
@@ -104,7 +105,7 @@ defmodule Pleroma.User do
       {:error,
        "Could not follow user: #{followed.nickname} is already on your list."}
     else
-      if !followed.local do
+      if !followed.local && follower.local do
         Websub.subscribe(follower, followed)
       end
 
@@ -126,7 +127,7 @@ defmodule Pleroma.User do
       { :ok, follower } = follower
       |> follow_changeset(%{following: following})
       |> Repo.update
-      { :ok, follower, ActivityPub.fetch_latest_follow(follower, followed)}
+      { :ok, follower, Utils.fetch_latest_follow(follower, followed)}
     else
       {:error, "Not subscribed!"}
     end
@@ -136,9 +137,13 @@ defmodule Pleroma.User do
     Enum.member?(follower.following, User.ap_followers(followed))
   end
 
+  def get_by_ap_id(ap_id) do
+    Repo.get_by(User, ap_id: ap_id)
+  end
+
   def get_cached_by_ap_id(ap_id) do
     key = "ap_id:#{ap_id}"
-    Cachex.get!(:user_cache, key, fallback: fn(_) -> Repo.get_by(User, ap_id: ap_id) end)
+    Cachex.get!(:user_cache, key, fallback: fn(_) -> get_by_ap_id(ap_id) end)
   end
 
   def get_cached_by_nickname(nickname) do