Mastodon 4.3's policy was a stub that accepted everything. It is now kept per persona: notifications from accounts it does not follow, accounts that do not follow it (or only for three days), accounts newer than 30 days, private mentions it did not ask for and silenced accounts are accepted, filtered or dropped. Filtered ones stay out of every list and count unless asked for, gathered in a request per account; letting a request in lets that account in for good, dismissing it deletes them. Everything is accepted until the persona chooses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
33 lines
790 B
C#
33 lines
790 B
C#
using MongoDB.Entities;
|
|
|
|
namespace PrivaPub.Models.Social
|
|
{
|
|
public class Notification : Entity
|
|
{
|
|
public string AvatarId { get; set; }
|
|
public NotificationType Type { get; set; }
|
|
public string FromAccountId { get; set; }
|
|
public string FromActorURI { get; set; }
|
|
public string PostId { get; set; }
|
|
public string DedupeKey { get; set; }
|
|
public string Emoji { get; set; }//a reaction's emoji
|
|
public string EmojiURL { get; set; }
|
|
public bool IsRead { get; set; }
|
|
public bool Filtered { get; set; }//held back by the persona's notification policy, in a NotificationRequest
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public enum NotificationType
|
|
{
|
|
Mention,
|
|
Follow,
|
|
FollowRequest,
|
|
Favourite,
|
|
Reblog,
|
|
Update,
|
|
Poll,
|
|
Reaction,
|
|
Quote
|
|
}
|
|
}
|