+
+ def update(user) do
+ user =
+ with emoji <- emoji_from_profile(user),
+ source_data <- (user.info["source_data"] || %{}) |> Map.put("tag", emoji),
+ new_info <- Map.put(user.info, "source_data", source_data),
+ change <- User.info_changeset(user, %{info: new_info}),
+ {:ok, user} <- User.update_and_set_cache(change) do
+ user
+ else
+ _e ->
+ user
+ end
+
+ ActivityPub.update(%{
+ local: true,
+ to: [user.follower_address],
+ cc: [],
+ actor: user.ap_id,
+ object: Pleroma.Web.ActivityPub.UserView.render("user.json", %{user: user})
+ })
+ end