Lists: a persona's followed accounts, read apart
Mastodon's lists replace the empty stubs: CRUD, members (only accounts the persona follows; a follow that ends takes its memberships with it), accounts/:id/lists, and timelines/list/:id from the persona's home entries with the replies policy (followed, list, none; self-replies and replies to the persona always). An exclusive list's members stay out of home. Lists never federate, and go with a deleted persona. 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
4b6d261739
commit
0614bdcf18
13 files changed
+406
-21
No files matched your search
@@ -128,6 +128,8 @@ namespace PrivaPub.Domain.Social
|
||||
{
|
||||
return await _dbEntities.Followings.Match(f => f.AvatarId == follower.Id && f.TargetActorURI == targetUri).ExecuteFirstAsync(token);
|
||||
}
|
||||
//a new follow starts in no list, whatever lists the account was in before a follow that ended without passing here
|
||||
await DB.Default.DeleteAsync<PersonaListMember>(m => m.AvatarId == follower.Id && m.AccountId == following.TargetAccountId);
|
||||
|
||||
if (local != default)
|
||||
await FollowLocally(follower, local, following, token);
|
||||
@@ -145,6 +147,7 @@ namespace PrivaPub.Domain.Social
|
||||
return;
|
||||
|
||||
await DB.Default.DeleteAsync<Following>(following.ID);
|
||||
await DB.Default.DeleteAsync<PersonaListMember>(m => m.AvatarId == follower.Id && m.AccountId == following.TargetAccountId);
|
||||
if (following.TargetIsLocal)
|
||||
{
|
||||
await DB.Default.DeleteAsync<Follower>(f => f.LocalActorId == following.TargetAccountId && f.ActorURI == follower.Uri);
|
||||
|
||||
Reference in new issue
Block a user