Notifications in groups, and what is unread
The Notifications tab reads grouped notifications (/api/v2/notifications): likes and boosts of one post, or follows of one hour, are one card naming both accounts of a pair, or the newest and how many others, with their avatars. A notification the stream tells joins its group and waits on top. The tab's badge counts what is unread; opening the tab moves the notifications marker to the newest shown, which reads it on PrivaPub. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
963565b316
commit
a4d9831691
11 files changed
+263
-12
No files matched your search
@@ -12,6 +12,45 @@ public class Notification
|
||||
public Account Account { get; set; }
|
||||
public Status Status { get; set; }
|
||||
public string Emoji { get; set; }
|
||||
/// <summary>The group it belongs to (likes and boosts of one post, follows within an hour), or ungrouped-{id}.</summary>
|
||||
public string GroupKey { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>/api/v2/notifications: notifications folded into groups, with the accounts and posts they name.</summary>
|
||||
public class GroupedNotifications
|
||||
{
|
||||
public List<Account> Accounts { get; set; } = [];
|
||||
public List<Status> Statuses { get; set; } = [];
|
||||
public List<NotificationGroup> NotificationGroups { get; set; } = [];
|
||||
}
|
||||
|
||||
public class NotificationGroup
|
||||
{
|
||||
public string GroupKey { get; set; }
|
||||
public int NotificationsCount { get; set; }
|
||||
public string Type { get; set; }
|
||||
public string MostRecentNotificationId { get; set; }
|
||||
public string PageMinId { get; set; }
|
||||
public string PageMaxId { get; set; }
|
||||
public DateTime LatestPageNotificationAt { get; set; }
|
||||
public List<string> SampleAccountIds { get; set; } = [];
|
||||
public string StatusId { get; set; }
|
||||
public string Emoji { get; set; }
|
||||
}
|
||||
|
||||
public class MarkersForm
|
||||
{
|
||||
public MarkerForm Notifications { get; set; }
|
||||
}
|
||||
|
||||
public class MarkerForm
|
||||
{
|
||||
public string LastReadId { get; set; }
|
||||
}
|
||||
|
||||
public class UnreadCount
|
||||
{
|
||||
public int Count { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>A direct conversation: its participants and its last post.</summary>
|
||||
|
||||
Reference in new issue
Block a user