X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=6a267ee58dbd5846e89ee1a5123c9822211fbf24;hb=ab98c92d86f91b0c83f482e002e4a518b93f65ca;hp=a290db04adb91135c321c6ffec2a70e17da9c192;hpb=4976a8b05f359cd32b37612727f81c89df85d651;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index a290db04a..6a267ee58 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -2,7 +2,6 @@ defmodule Pleroma.User do use Ecto.Schema import Ecto.{Changeset, Query} - alias Ecto.Multi alias Pleroma.{Repo, User, Object, Web, Activity, Notification} alias Comeonin.Pbkdf2 alias Pleroma.Formatter @@ -10,6 +9,8 @@ defmodule Pleroma.User do alias Pleroma.Web.{OStatus, Websub, OAuth} alias Pleroma.Web.ActivityPub.{Utils, ActivityPub} + @type t :: %__MODULE__{} + schema "users" do field(:bio, :string) field(:email, :string) @@ -218,7 +219,7 @@ defmodule Pleroma.User do end end - def maybe_follow(%User{} = follower, %User{info: info} = followed) do + def maybe_follow(%User{} = follower, %User{info: _info} = followed) do if not following?(follower, followed) do follow(follower, followed) else @@ -280,6 +281,7 @@ defmodule Pleroma.User do end end + @spec following?(User.t(), User.t()) :: boolean def following?(%User{} = follower, %User{} = followed) do Enum.member?(follower.following, followed.follower_address) end @@ -824,20 +826,21 @@ defmodule Pleroma.User do end) end + def tag(nickname, tags) when is_binary(nickname), + do: tag(User.get_by_nickname(nickname), tags) + + def tag(%User{} = user, tags), + do: update_tags(user, Enum.uniq(user.tags ++ normalize_tags(tags))) + def untag(user_identifiers, tags) when is_list(user_identifiers) do Repo.transaction(fn -> for user_identifier <- user_identifiers, do: untag(user_identifier, tags) end) end - def tag(nickname, tags) when is_binary(nickname), do: tag(User.get_by_nickname(nickname), tags) - def untag(nickname, tags) when is_binary(nickname), do: untag(User.get_by_nickname(nickname), tags) - def tag(%User{} = user, tags), - do: update_tags(user, Enum.uniq(user.tags ++ normalize_tags(tags))) - def untag(%User{} = user, tags), do: update_tags(user, user.tags -- normalize_tags(tags)) defp update_tags(%User{} = user, new_tags) do