- new_notifications =
- Pleroma.Notification.for_user_since(user, user.last_digest_emailed_at)
- |> Enum.reduce(%{followers: [], mentions: []}, fn
- %{activity: %{data: %{"type" => "Create"}, actor: actor} = activity} = notification,
- acc ->
- new_mention = %{
- data: notification,
- object: Pleroma.Object.normalize(activity),
- from: Pleroma.User.get_by_ap_id(actor)
- }
-
- %{acc | mentions: [new_mention | acc.mentions]}
-
- %{activity: %{data: %{"type" => "Follow"}, actor: actor} = activity} = notification,
- acc ->
- new_follower = %{
- data: notification,
- object: Pleroma.Object.normalize(activity),
- from: Pleroma.User.get_by_ap_id(actor)
- }
-
- %{acc | followers: [new_follower | acc.followers]}
-
- _, acc ->
- acc
+ notifications = Pleroma.Notification.for_user_since(user, user.last_digest_emailed_at)
+
+ mentions =
+ notifications
+ |> Enum.filter(&(&1.activity.data["type"] == "Create"))
+ |> Enum.map(fn notification ->
+ object = Pleroma.Object.normalize(notification.activity)
+ object = update_in(object.data["content"], &format_links/1)
+
+ %{
+ data: notification,
+ object: object,
+ from: User.get_by_ap_id(notification.activity.actor)
+ }
+ end)
+
+ followers =
+ notifications
+ |> Enum.filter(&(&1.activity.data["type"] == "Follow"))
+ |> Enum.map(fn notification ->
+ %{
+ data: notification,
+ object: Pleroma.Object.normalize(notification.activity),
+ from: User.get_by_ap_id(notification.activity.actor)
+ }