R8 the Mastodon API made real: featured tags, endorsements, notes, notify and languages, suggestions, the direct stream
Featured tags per persona (/api/v1/featured_tags, suggestions, tags/:name/feature, accounts' featured tags, max 10),
listed at /tattoos as Hashtags and sent as Add/Remove{Hashtag} to followers on the featured collection, as Mastodon
sends them; remote accounts' tags received and read from featuredTags. Endorsements (pin/endorse) and private notes
(PersonaNote) kept per persona and never federated; the relationship's notifying, languages, endorsed and note, with
follow's notify (status notifications) and languages (home filter). Reading preferences set on /clientapi. Suggestions
v1/v2 with dismissals and staff picks, never the persona or a sibling. conversation events on the direct stream.
translate, annual reports and the admin API answer. New collections backed up and removed with their persona.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
This commit is contained in:
1 parent
d08fbabaa5
commit
87529bca49
42 files changed
+1505
-77
No files matched your search
@@ -78,6 +78,7 @@ namespace PrivaPub.Models.User
|
||||
public string InboxURL { get; set; }
|
||||
public string OutboxURL { get; set; }
|
||||
public string FeaturedURL { get; set; }//featured: the posts it pins
|
||||
public string FeaturedTagsURL { get; set; }//featuredTags: the hashtags it features (R8)
|
||||
public List<PrivaPub.Models.Post.PostFlair> Flairs { get; set; } = new();//a community's labels for its posts
|
||||
public List<string> FeedCommunities { get; set; } = new();//a feed's communities, its `following` (Lemmy's multi-communities, PieFed's feeds)
|
||||
public List<string> SearchableBy { get; set; }//FEP-268d, when the account states it: outranks IsIndexable
|
||||
@@ -127,6 +128,19 @@ namespace PrivaPub.Models.User
|
||||
public bool DefaultSensitive { get; set; }
|
||||
public string DefaultLanguage { get; set; }
|
||||
public string QuotePolicy { get; set; } = QuotePolicies.Public;//owner decision: anyone may quote a public post, automatically
|
||||
// how its clients show what others post (R8, Mastodon's reading:expand:media and :spoilers in GET /api/v1/preferences),
|
||||
// set through /clientapi/avatar/private/preferences, since Mastodon's API sets neither
|
||||
public string ExpandMedia { get; set; } = ExpandMediaModes.Default;
|
||||
public bool ExpandSpoilers { get; set; }
|
||||
}
|
||||
|
||||
public static class ExpandMediaModes
|
||||
{
|
||||
public const string Default = "default";//hide media marked sensitive
|
||||
public const string ShowAll = "show_all";
|
||||
public const string HideAll = "hide_all";
|
||||
|
||||
public static bool IsKnown(string value) => value is Default or ShowAll or HideAll;
|
||||
}
|
||||
|
||||
public static class QuotePolicies
|
||||
|
||||
Reference in new issue
Block a user