The persona's notification policy, and what it filtered
Settings has a Notifications section, also at /notifications/filtered: what notifications from people the persona does not follow, people who do not follow it, new accounts, private mentions it did not ask for and limited accounts become (accept, filter, drop), and the filtered ones, one request per account, let in (with that account from then on) or dismissed. The Notifications tab says when requests wait. e2e: a stranger's like waits in a request reached from the tab and comes back once let in; the policy and the stranger's permission are put back afterwards (Pasture.Mongo). 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
a0f07abf8c
commit
658683f816
13 files changed
+467
No files matched your search
@@ -104,6 +104,11 @@ public static class APIs
|
||||
public static string GET_M_FavouritedBy(string statusId) => $"api/v1/statuses/{Uri.EscapeDataString(statusId)}/favourited_by";
|
||||
public static string GET_M_RebloggedBy(string statusId) => $"api/v1/statuses/{Uri.EscapeDataString(statusId)}/reblogged_by";
|
||||
public const string POST_Reports = "api/v1/reports";
|
||||
public const string GET_NotificationPolicy = "api/v2/notifications/policy";
|
||||
public const string PATCH_NotificationPolicy = "api/v2/notifications/policy";
|
||||
public const string GET_NotificationRequests = "api/v1/notifications/requests";
|
||||
public static string POST_M_NotificationRequest(string requestId, bool accept) =>
|
||||
$"api/v1/notifications/requests/{Uri.EscapeDataString(requestId)}/{(accept ? "accept" : "dismiss")}";
|
||||
public static string PUT_M_Status(string statusId) => $"api/v1/statuses/{Uri.EscapeDataString(statusId)}";
|
||||
public const string GET_FollowedTags = "api/v1/followed_tags";
|
||||
public const string GET_GroupedNotifications = "api/v2/notifications";
|
||||
|
||||
@@ -206,6 +206,37 @@ public class StatusSource
|
||||
public string SpoilerText { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>/api/v2/notifications/policy: what notifications from people the persona does not follow, people who do not
|
||||
/// follow it, new accounts, unasked private mentions and limited accounts become: accept, filter or drop.</summary>
|
||||
public class NotificationPolicy
|
||||
{
|
||||
public string ForNotFollowing { get; set; }
|
||||
public string ForNotFollowers { get; set; }
|
||||
public string ForNewAccounts { get; set; }
|
||||
public string ForPrivateMentions { get; set; }
|
||||
public string ForLimitedAccounts { get; set; }
|
||||
public NotificationPolicySummary Summary { get; set; }
|
||||
}
|
||||
|
||||
public class NotificationPolicySummary
|
||||
{
|
||||
public int PendingRequestsCount { get; set; }
|
||||
public int PendingNotificationsCount { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>/api/v1/notifications/requests: the notifications the policy filtered from one account, waiting to be let in
|
||||
/// (and that account from then on) or dismissed.</summary>
|
||||
public class NotificationRequest
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
/// <summary>A number, as a string (Mastodon's).</summary>
|
||||
public string NotificationsCount { get; set; }
|
||||
public Account Account { get; set; }
|
||||
public Status LastStatus { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>/api/v1/reports: an account, and some of its posts, reported to the persona's server's moderators; forwarded,
|
||||
/// a remote account's server gets it too, from the server's own actor.</summary>
|
||||
public class ReportRequest
|
||||
|
||||
Reference in new issue
Block a user