X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=85d0f9fce297d8ba6b97c35d3cf7c93615a16b4e;hb=74e109373238c3c915bdf23b364aedd0ca0f6970;hp=892f4e483be6e63ced3403abec02befc931a3a65;hpb=90e157ef803296989b41d1fbfb5096b39320f75d;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 892f4e483..85d0f9fce 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -367,6 +367,15 @@ defmodule Pleroma.User do Repo.get_by(User, ap_id: ap_id) end + # This is mostly an SPC migration fix. This guesses the user nickname (by taking the last part of the ap_id and the domain) and tries to get that user + def get_by_guessed_nickname(ap_id) do + domain = URI.parse(ap_id).host + name = List.last(String.split(ap_id, "/")) + nickname = "#{name}@#{domain}" + + get_by_nickname(nickname) + end + def update_and_set_cache(changeset) do with {:ok, user} <- Repo.update(changeset) do Cachex.put(:user_cache, "ap_id:#{user.ap_id}", user) @@ -495,6 +504,7 @@ defmodule Pleroma.User do Enum.map(reqs, fn req -> req.actor end) |> Enum.uniq() |> Enum.map(fn ap_id -> get_by_ap_id(ap_id) end) + |> Enum.filter(fn u -> !is_nil(u) end) |> Enum.filter(fn u -> !following?(u, user) end) {:ok, users} @@ -609,7 +619,7 @@ defmodule Pleroma.User do select_merge: %{ search_distance: fragment( - "? <-> (? || ?)", + "? <-> (? || coalesce(?, ''))", ^query, u.nickname, u.name