Log subscription error.
[akkoma] / lib / pleroma / web / web_finger / web_finger.ex
index 7ceca042b5703d80dadb6e54241e64306ac96201..ff10173efed1a83762b2208bad25baae4829cd0a 100644 (file)
@@ -18,11 +18,15 @@ defmodule Pleroma.Web.WebFinger do
   def webfinger(resource) do
     host = Pleroma.Web.host
     regex = ~r/(acct:)?(?<username>\w+)@#{host}/
-    case Regex.named_captures(regex, resource) do
-      %{"username" => username} ->
-        user = User.get_by_nickname(username)
+    with %{"username" => username} <- Regex.named_captures(regex, resource) do
+      user = User.get_by_nickname(username)
+      {:ok, represent_user(user)}
+    else _e ->
+      with user when not is_nil(user) <- User.get_cached_by_ap_id(resource) do
         {:ok, represent_user(user)}
-      _ -> nil
+      else _e ->
+        {:error, "Couldn't find user"}
+      end
     end
   end
 
@@ -43,6 +47,7 @@ defmodule Pleroma.Web.WebFinger do
     |> XmlBuilder.to_doc
   end
 
+  # This seems a better fit in Salmon
   def ensure_keys_present(user) do
     info = user.info || %{}
     if info["keys"] do