Don't show content if empty or zero width space
[akkoma] / lib / pleroma / user.ex
index 5707ba7a2d0df25de30d5a03e789497fff8d468c..13a476fd2911921114a05df3e84e7fe921b9f2bd 100644 (file)
@@ -445,7 +445,20 @@ defmodule Pleroma.User do
 
   def get_cached_by_id(id) do
     key = "id:#{id}"
-    Cachex.fetch!(:user_cache, key, fn _ -> get_by_id(id) end)
+
+    ap_id =
+      Cachex.fetch!(:user_cache, key, fn _ ->
+        user = get_by_id(id)
+
+        if user do
+          Cachex.put(:user_cache, "ap_id:#{user.ap_id}", user)
+          {:commit, user.ap_id}
+        else
+          {:ignore, ""}
+        end
+      end)
+
+    get_cached_by_ap_id(ap_id)
   end
 
   def get_cached_by_nickname(nickname) do
@@ -454,20 +467,7 @@ defmodule Pleroma.User do
   end
 
   def get_cached_by_nickname_or_id(nickname_or_id) do
-    try do
-      # TODO: convert to UUIDs when !654 is merged
-      maybe_id = String.to_integer(nickname_or_id)
-      user = get_cached_by_id(maybe_id)
-
-      if user == nil do
-        raise ArgumentError, message: "No such user id"
-      else
-        user
-      end
-    rescue
-      ArgumentError ->
-        get_cached_by_nickname(nickname_or_id)
-    end
+    get_cached_by_id(nickname_or_id) || get_cached_by_nickname(nickname_or_id)
   end
 
   def get_by_nickname(nickname) do