X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=869a3eb1b5b77352b41b3920da7072ab488a2eeb;hb=6a184115a2431727b5039c1c726a8afc5eef228c;hp=22e77c3df092ad3e9c455abe0a8ee0fcaaad4bb0;hpb=118c572006dd96e6718035e5859aa339aa254476;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 22e77c3df..869a3eb1b 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -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