diff --git a/LICENSE.md b/LICENSE.md index 27951f0..8c0c399 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2023 Tim Miller +Copyright (c) 2025 Tim Miller Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/FishyFlip/Lexicon/ATObject.g.cs b/src/FishyFlip/Lexicon/ATObject.g.cs index 80c03cb..b246f96 100644 --- a/src/FishyFlip/Lexicon/ATObject.g.cs +++ b/src/FishyFlip/Lexicon/ATObject.g.cs @@ -112,6 +112,7 @@ namespace FishyFlip.Lexicon [JsonDerivedType(typeof(Com.Atproto.Admin.GetAccountInfosOutput), typeDiscriminator: "com.atproto.admin.getAccountInfos#GetAccountInfosOutput")] [JsonDerivedType(typeof(Com.Atproto.Server.GetAccountInviteCodesOutput), typeDiscriminator: "com.atproto.server.getAccountInviteCodes#GetAccountInviteCodesOutput")] [JsonDerivedType(typeof(Community.Lexicon.Bookmarks.GetActorBookmarksOutput), typeDiscriminator: "community.lexicon.bookmarks.getActorBookmarks#GetActorBookmarksOutput")] + [JsonDerivedType(typeof(Fm.Teal.Alpha.Feed.GetActorFeedOutput), typeDiscriminator: "fm.teal.alpha.feed.getActorFeed#GetActorFeedOutput")] [JsonDerivedType(typeof(App.Bsky.Feed.GetActorFeedsOutput), typeDiscriminator: "app.bsky.feed.getActorFeeds#GetActorFeedsOutput")] [JsonDerivedType(typeof(App.Bsky.Feed.GetActorLikesOutput), typeDiscriminator: "app.bsky.feed.getActorLikes#GetActorLikesOutput")] [JsonDerivedType(typeof(Chat.Bsky.Moderation.GetActorMetadataOutput), typeDiscriminator: "chat.bsky.moderation.getActorMetadata#GetActorMetadataOutput")] @@ -151,6 +152,7 @@ namespace FishyFlip.Lexicon [JsonDerivedType(typeof(App.Bsky.Graph.GetMutesOutput), typeDiscriminator: "app.bsky.graph.getMutes#GetMutesOutput")] [JsonDerivedType(typeof(Com.Shinolabs.Pinksea.GetOekakiOutput), typeDiscriminator: "com.shinolabs.pinksea.getOekaki#GetOekakiOutput")] [JsonDerivedType(typeof(Com.Shinolabs.Pinksea.GetParentForReplyOutput), typeDiscriminator: "com.shinolabs.pinksea.getParentForReply#GetParentForReplyOutput")] + [JsonDerivedType(typeof(Fm.Teal.Alpha.Feed.GetPlayOutput), typeDiscriminator: "fm.teal.alpha.feed.getPlay#GetPlayOutput")] [JsonDerivedType(typeof(App.Bsky.Unspecced.GetPopularFeedGeneratorsOutput), typeDiscriminator: "app.bsky.unspecced.getPopularFeedGenerators#GetPopularFeedGeneratorsOutput")] [JsonDerivedType(typeof(App.Bsky.Feed.GetPostsOutput), typeDiscriminator: "app.bsky.feed.getPosts#GetPostsOutput")] [JsonDerivedType(typeof(App.Bsky.Feed.GetPostThreadOutput), typeDiscriminator: "app.bsky.feed.getPostThread#GetPostThreadOutput")] @@ -290,7 +292,8 @@ namespace FishyFlip.Lexicon [JsonDerivedType(typeof(Com.Whtwnd.Blog.Ogp), typeDiscriminator: "com.whtwnd.blog.defs#ogp")] [JsonDerivedType(typeof(Tools.Ozone.Setting.Option), typeDiscriminator: "tools.ozone.setting.defs#option")] [JsonDerivedType(typeof(App.Bsky.Actor.PersonalDetailsPref), typeDiscriminator: "app.bsky.actor.defs#personalDetailsPref")] - [JsonDerivedType(typeof(Fm.Teal.Alpha.Play), typeDiscriminator: "fm.teal.alpha.play")] + [JsonDerivedType(typeof(Fm.Teal.Alpha.Feed.Play), typeDiscriminator: "fm.teal.alpha.feed.play")] + [JsonDerivedType(typeof(Fm.Teal.Alpha.Feed.PlayView), typeDiscriminator: "fm.teal.alpha.feed.defs#playView")] [JsonDerivedType(typeof(App.Bsky.Feed.Post), typeDiscriminator: "app.bsky.feed.post")] [JsonDerivedType(typeof(Fyi.Unravel.Frontpage.Post), typeDiscriminator: "fyi.unravel.frontpage.post")] [JsonDerivedType(typeof(App.Bsky.Feed.Postgate), typeDiscriminator: "app.bsky.feed.postgate")] @@ -393,7 +396,6 @@ namespace FishyFlip.Lexicon [JsonDerivedType(typeof(App.Bsky.Graph.StarterPackView), typeDiscriminator: "app.bsky.graph.defs#starterPackView")] [JsonDerivedType(typeof(App.Bsky.Graph.StarterPackViewBasic), typeDiscriminator: "app.bsky.graph.defs#starterPackViewBasic")] [JsonDerivedType(typeof(App.Netlify.Aniblue.Status), typeDiscriminator: "app.netlify.aniblue.status")] - [JsonDerivedType(typeof(Xyz.Statusphere.Status), typeDiscriminator: "xyz.statusphere.status")] [JsonDerivedType(typeof(Fm.Teal.Alpha.Actor.Status), typeDiscriminator: "fm.teal.alpha.actor.status")] [JsonDerivedType(typeof(Com.Atproto.Admin.StatusAttr), typeDiscriminator: "com.atproto.admin.defs#statusAttr")] [JsonDerivedType(typeof(App.Netlify.Aniblue.StatusDef), typeDiscriminator: "app.netlify.aniblue.status#status")] diff --git a/src/FishyFlip/Lexicon/ATProtocol.g.cs b/src/FishyFlip/Lexicon/ATProtocol.g.cs index cd8bee0..2699ad8 100644 --- a/src/FishyFlip/Lexicon/ATProtocol.g.cs +++ b/src/FishyFlip/Lexicon/ATProtocol.g.cs @@ -123,6 +123,11 @@ public sealed partial class ATProtocol /// public FishyFlip.Lexicon.Community.Lexicon.Bookmarks.CommunityLexiconBookmarks CommunityLexiconBookmarks => new (this); + /// + /// fm.teal.alpha.feed Endpoint Group. + /// + public FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed FmTealAlphaFeed => new (this); + /// /// tools.ozone.communication Endpoint Group. /// diff --git a/src/FishyFlip/Lexicon/CborExtensions.g.cs b/src/FishyFlip/Lexicon/CborExtensions.g.cs index ead4edc..45ba939 100644 --- a/src/FishyFlip/Lexicon/CborExtensions.g.cs +++ b/src/FishyFlip/Lexicon/CborExtensions.g.cs @@ -239,6 +239,8 @@ public static ATObject ToATObject(this CBORObject obj) return new Com.Atproto.Server.GetAccountInviteCodesOutput(obj); case "community.lexicon.bookmarks.getActorBookmarks#GetActorBookmarksOutput": return new Community.Lexicon.Bookmarks.GetActorBookmarksOutput(obj); + case "fm.teal.alpha.feed.getActorFeed#GetActorFeedOutput": + return new Fm.Teal.Alpha.Feed.GetActorFeedOutput(obj); case "app.bsky.feed.getActorFeeds#GetActorFeedsOutput": return new App.Bsky.Feed.GetActorFeedsOutput(obj); case "app.bsky.feed.getActorLikes#GetActorLikesOutput": @@ -317,6 +319,8 @@ public static ATObject ToATObject(this CBORObject obj) return new Com.Shinolabs.Pinksea.GetOekakiOutput(obj); case "com.shinolabs.pinksea.getParentForReply#GetParentForReplyOutput": return new Com.Shinolabs.Pinksea.GetParentForReplyOutput(obj); + case "fm.teal.alpha.feed.getPlay#GetPlayOutput": + return new Fm.Teal.Alpha.Feed.GetPlayOutput(obj); case "app.bsky.unspecced.getPopularFeedGenerators#GetPopularFeedGeneratorsOutput": return new App.Bsky.Unspecced.GetPopularFeedGeneratorsOutput(obj); case "app.bsky.feed.getPosts#GetPostsOutput": @@ -595,8 +599,10 @@ public static ATObject ToATObject(this CBORObject obj) return new Tools.Ozone.Setting.Option(obj); case "app.bsky.actor.defs#personalDetailsPref": return new App.Bsky.Actor.PersonalDetailsPref(obj); - case "fm.teal.alpha.play": - return new Fm.Teal.Alpha.Play(obj); + case "fm.teal.alpha.feed.play": + return new Fm.Teal.Alpha.Feed.Play(obj); + case "fm.teal.alpha.feed.defs#playView": + return new Fm.Teal.Alpha.Feed.PlayView(obj); case "app.bsky.feed.post": return new App.Bsky.Feed.Post(obj); case "fyi.unravel.frontpage.post": @@ -801,8 +807,6 @@ public static ATObject ToATObject(this CBORObject obj) return new App.Bsky.Graph.StarterPackViewBasic(obj); case "app.netlify.aniblue.status": return new App.Netlify.Aniblue.Status(obj); - case "xyz.statusphere.status": - return new Xyz.Statusphere.Status(obj); case "fm.teal.alpha.actor.status": return new Fm.Teal.Alpha.Actor.Status(obj); case "com.atproto.admin.defs#statusAttr": diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Actor/ATProtoActorExtensions.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Actor/ATProtoActorExtensions.g.cs index d75f36b..84dacc3 100644 --- a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Actor/ATProtoActorExtensions.g.cs +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Actor/ATProtoActorExtensions.g.cs @@ -157,7 +157,7 @@ public static class ATProtoActorExtensions /// /// /// - public static Task> CreateStatusAsync(this FishyFlip.ATProtocol atp, DateTime? time, Fm.Teal.Alpha.Play? item, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) + public static Task> CreateStatusAsync(this FishyFlip.ATProtocol atp, DateTime? time, Fm.Teal.Alpha.Feed.PlayView? item, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) { var record = new FishyFlip.Lexicon.Fm.Teal.Alpha.Actor.Status(); record.Time = time; diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Actor/Status.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Actor/Status.g.cs index 56d7662..811e0de 100644 --- a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Actor/Status.g.cs +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Actor/Status.g.cs @@ -17,10 +17,9 @@ public partial class Status : ATObject /// /// The unix timestamp of when the item was recorded /// - ///
Union Types:
- /// (fm.teal.alpha.play#record)
+ /// (fm.teal.alpha.feed.defs#playView) /// - public Status(DateTime? time, Fm.Teal.Alpha.Play? item) + public Status(DateTime? time, Fm.Teal.Alpha.Feed.PlayView? item) { this.Time = time; this.Item = item; @@ -41,7 +40,7 @@ public Status() public Status(CBORObject obj) { if (obj["time"] is not null) this.Time = obj["time"].ToDateTime(); - if (obj["item"] is not null) this.Item = new Fm.Teal.Alpha.Play(obj["item"]); + if (obj["item"] is not null) this.Item = new Fm.Teal.Alpha.Feed.PlayView(obj["item"]); } /// @@ -53,11 +52,10 @@ public Status(CBORObject obj) /// /// Gets or sets the item. - ///
Union Types:
- /// (fm.teal.alpha.play#record)
+ ///
(fm.teal.alpha.feed.defs#playView) ///
[JsonPropertyName("item")] - public Fm.Teal.Alpha.Play? Item { get; set; } + public Fm.Teal.Alpha.Feed.PlayView? Item { get; set; } /// /// Gets the ATRecord Type. diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/ATProtoAlphaExtensions.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/ATProtoFeedExtensions.g.cs similarity index 72% rename from src/FishyFlip/Lexicon/Fm/Teal/Alpha/ATProtoAlphaExtensions.g.cs rename to src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/ATProtoFeedExtensions.g.cs index e588d0e..2c9b38a 100644 --- a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/ATProtoAlphaExtensions.g.cs +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/ATProtoFeedExtensions.g.cs @@ -6,13 +6,13 @@ using FishyFlip.Lexicon.Com.Atproto.Repo; -namespace FishyFlip.Lexicon.Fm.Teal.Alpha +namespace FishyFlip.Lexicon.Fm.Teal.Alpha.Feed { /// - /// Extension methods for fm.teal.alpha. + /// Extension methods for fm.teal.alpha.feed. /// - public static class ATProtoAlphaExtensions + public static class ATProtoFeedExtensions { /// @@ -24,9 +24,9 @@ public static class ATProtoAlphaExtensions /// /// /// - public static Task> CreatePlayAsync(this FishyFlip.ATProtocol atp, Fm.Teal.Alpha.Play record, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) + public static Task> CreatePlayAsync(this FishyFlip.ATProtocol atp, Fm.Teal.Alpha.Feed.Play record, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) { - return atp.CreateRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.play", record, rkey, validate, swapCommit, cancellationToken); + return atp.CreateRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", record, rkey, validate, swapCommit, cancellationToken); } /// @@ -39,14 +39,14 @@ public static class ATProtoAlphaExtensions /// /// /// - public static Task> CreatePlayAsync(this FishyFlip.ATProtocol atp, string? trackName, string? artistName, string? trackMbId = default, string? recordingMbId = default, long? duration = default, List? artistMbIds = default, string? releaseName = default, string? releaseMbId = default, string? isrc = default, string? originUrl = default, string? musicServiceBaseDomain = default, string? submissionClientAgent = default, DateTime? playedTime = default, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) + public static Task> CreatePlayAsync(this FishyFlip.ATProtocol atp, string? trackName, List? artistNames, string? trackMbId = default, string? recordingMbId = default, long? duration = default, List? artistMbIds = default, string? releaseName = default, string? releaseMbId = default, string? isrc = default, string? originUrl = default, string? musicServiceBaseDomain = default, string? submissionClientAgent = default, DateTime? playedTime = default, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) { - var record = new FishyFlip.Lexicon.Fm.Teal.Alpha.Play(); + var record = new FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.Play(); record.TrackName = trackName; record.TrackMbId = trackMbId; record.RecordingMbId = recordingMbId; record.Duration = duration; - record.ArtistName = artistName; + record.ArtistNames = artistNames; record.ArtistMbIds = artistMbIds; record.ReleaseName = releaseName; record.ReleaseMbId = releaseMbId; @@ -55,7 +55,7 @@ public static class ATProtoAlphaExtensions record.MusicServiceBaseDomain = musicServiceBaseDomain; record.SubmissionClientAgent = submissionClientAgent; record.PlayedTime = playedTime; - return atp.CreateRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.play", record, rkey, validate, swapCommit, cancellationToken); + return atp.CreateRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", record, rkey, validate, swapCommit, cancellationToken); } /// @@ -69,7 +69,7 @@ public static class ATProtoAlphaExtensions /// public static Task> DeletePlayAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, string rkey, string? swapRecord = default, string? swapCommit = default, CancellationToken cancellationToken = default) { - return atp.DeleteRecordAsync(repo, "fm.teal.alpha.play", rkey, swapRecord, swapCommit, cancellationToken); + return atp.DeleteRecordAsync(repo, "fm.teal.alpha.feed.play", rkey, swapRecord, swapCommit, cancellationToken); } /// @@ -83,9 +83,9 @@ public static class ATProtoAlphaExtensions /// /// /// - public static Task> PutPlayAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, string rkey, Fm.Teal.Alpha.Play record, bool? validate = default, string? swapRecord = default, string? swapCommit = default, CancellationToken cancellationToken = default) + public static Task> PutPlayAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, string rkey, Fm.Teal.Alpha.Feed.Play record, bool? validate = default, string? swapRecord = default, string? swapCommit = default, CancellationToken cancellationToken = default) { - return atp.PutRecordAsync(repo, "fm.teal.alpha.play", rkey, record, validate, swapRecord, swapCommit, cancellationToken); + return atp.PutRecordAsync(repo, "fm.teal.alpha.feed.play", rkey, record, validate, swapRecord, swapCommit, cancellationToken); } /// @@ -99,7 +99,7 @@ public static class ATProtoAlphaExtensions /// public static Task> ListPlayAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, int? limit = 50, string? cursor = default, bool? reverse = default, CancellationToken cancellationToken = default) { - return atp.ListRecordsAsync(repo, "fm.teal.alpha.play", limit, cursor, reverse, cancellationToken); + return atp.ListRecordsAsync(repo, "fm.teal.alpha.feed.play", limit, cursor, reverse, cancellationToken); } /// @@ -112,7 +112,7 @@ public static class ATProtoAlphaExtensions /// public static Task> ListPlayAsync(this FishyFlip.ATProtocol atp, int? limit = 50, string? cursor = default, bool? reverse = default, CancellationToken cancellationToken = default) { - return atp.ListRecordsAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.play", limit, cursor, reverse, cancellationToken); + return atp.ListRecordsAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", limit, cursor, reverse, cancellationToken); } /// @@ -125,7 +125,7 @@ public static class ATProtoAlphaExtensions /// public static Task> GetPlayAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, string rkey, string? cid = default, CancellationToken cancellationToken = default) { - return atp.GetRecordAsync(repo, "fm.teal.alpha.play", rkey, cid, cancellationToken); + return atp.GetRecordAsync(repo, "fm.teal.alpha.feed.play", rkey, cid, cancellationToken); } /// @@ -137,7 +137,7 @@ public static class ATProtoAlphaExtensions /// public static Task> GetPlayAsync(this FishyFlip.ATProtocol atp, string rkey, string? cid = default, CancellationToken cancellationToken = default) { - return atp.GetRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.play", rkey, cid, cancellationToken); + return atp.GetRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", rkey, cid, cancellationToken); } } } diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FeedEndpoints.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FeedEndpoints.g.cs new file mode 100644 index 0000000..77f9095 --- /dev/null +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FeedEndpoints.g.cs @@ -0,0 +1,73 @@ +// +// This file was generated by FFSourceGen. +// Do not modify this file. + +#nullable enable + +namespace FishyFlip.Lexicon.Fm.Teal.Alpha.Feed +{ + + /// + /// fm.teal.alpha.feed Endpoint Group. + /// + public static class FeedEndpoints + { + + public const string GetActorFeed = "/xrpc/fm.teal.alpha.feed.getActorFeed"; + + public const string GetPlay = "/xrpc/fm.teal.alpha.feed.getPlay"; + + + /// + /// Generated endpoint for fm.teal.alpha.feed.getActorFeed + /// + /// + /// + /// + /// + /// Result of + public static Task> GetActorFeedAsync (this FishyFlip.ATProtocol atp, string cursor, FishyFlip.Models.ATIdentifier? authorDID = default, CancellationToken cancellationToken = default) + { + var endpointUrl = GetActorFeed.ToString(); + endpointUrl += "?"; + List queryStrings = new(); + queryStrings.Add("cursor=" + cursor); + + if (authorDID != null) + { + queryStrings.Add("authorDID=" + authorDID); + } + + var headers = new Dictionary(); + headers.Add(Constants.AtProtoAcceptLabelers, atp.Options.LabelDefinitionsHeader); + endpointUrl += string.Join("&", queryStrings); + return atp.Get(endpointUrl, atp.Options.SourceGenerationContext.FmTealAlphaFeedGetActorFeedOutput!, cancellationToken, headers); + } + + + /// + /// Generated endpoint for fm.teal.alpha.feed.getPlay + /// + /// + /// + /// + /// + /// Result of + public static Task> GetPlayAsync (this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier authorDID, string rkey, CancellationToken cancellationToken = default) + { + var endpointUrl = GetPlay.ToString(); + endpointUrl += "?"; + List queryStrings = new(); + queryStrings.Add("authorDID=" + authorDID); + + queryStrings.Add("rkey=" + rkey); + + var headers = new Dictionary(); + headers.Add(Constants.AtProtoAcceptLabelers, atp.Options.LabelDefinitionsHeader); + endpointUrl += string.Join("&", queryStrings); + return atp.Get(endpointUrl, atp.Options.SourceGenerationContext.FmTealAlphaFeedGetPlayOutput!, cancellationToken, headers); + } + + } +} + diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FeedExtensions.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FeedExtensions.g.cs new file mode 100644 index 0000000..57b9dd5 --- /dev/null +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FeedExtensions.g.cs @@ -0,0 +1,153 @@ +// +// This file was generated by FFSourceGen. +// Do not modify this file. + +#nullable enable + +using FishyFlip.Lexicon.Com.Atproto.Repo; + +namespace FishyFlip.Lexicon +{ + + /// + /// Extension methods for fm.teal.alpha.feed. + /// + public static class FmTealAlphaFeedExtensions + { + + /// + /// Create a Play record. + /// + /// + /// + /// + /// + /// + /// + public static Task> CreatePlayAsync(this FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed atp, FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.Play record, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) + { + return atp.ATProtocol.CreateRecordAsync(atp.ATProtocol.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", record, rkey, validate, swapCommit, cancellationToken); + } + + /// + /// Create a Play record. + /// + /// + /// The name of the track + /// Array of artist names in order of original appearance. + /// The Musicbrainz ID of the track + /// The Musicbrainz recording ID of the track + /// The length of the track in seconds + /// Array of Musicbrainz artist IDs + /// The name of the release/album + /// The Musicbrainz release ID + /// The ISRC code associated with the recording + /// The URL associated with this track + /// The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided. + /// A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided. + /// The unix timestamp of when the track was played + /// + /// + /// + /// + public static Task> CreatePlayAsync(this FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed atp, string? trackName, List? artistNames, string? trackMbId = default, string? recordingMbId = default, long? duration = default, List? artistMbIds = default, string? releaseName = default, string? releaseMbId = default, string? isrc = default, string? originUrl = default, string? musicServiceBaseDomain = default, string? submissionClientAgent = default, DateTime? playedTime = default, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) + { + var record = new FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.Play(); + record.TrackName = trackName; + record.TrackMbId = trackMbId; + record.RecordingMbId = recordingMbId; + record.Duration = duration; + record.ArtistNames = artistNames; + record.ArtistMbIds = artistMbIds; + record.ReleaseName = releaseName; + record.ReleaseMbId = releaseMbId; + record.Isrc = isrc; + record.OriginUrl = originUrl; + record.MusicServiceBaseDomain = musicServiceBaseDomain; + record.SubmissionClientAgent = submissionClientAgent; + record.PlayedTime = playedTime; + return atp.ATProtocol.CreateRecordAsync(atp.ATProtocol.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", record, rkey, validate, swapCommit, cancellationToken); + } + + /// + /// Delete a Play record. + /// + /// + /// + /// + /// + /// + public static Task> DeletePlayAsync(this FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed atp, string rkey, string? swapRecord = default, string? swapCommit = default, CancellationToken cancellationToken = default) + { + return atp.ATProtocol.DeleteRecordAsync(atp.ATProtocol.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", rkey, swapRecord, swapCommit, cancellationToken); + } + + /// + /// Put a Play record. + /// + /// + /// + /// + /// + /// + /// + /// + public static Task> PutPlayAsync(this FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed atp, string rkey, FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.Play record, bool? validate = default, string? swapRecord = default, string? swapCommit = default, CancellationToken cancellationToken = default) + { + return atp.ATProtocol.PutRecordAsync(atp.ATProtocol.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", rkey, record, validate, swapRecord, swapCommit, cancellationToken); + } + + /// + /// List Play records. + /// + /// + /// + /// + /// + /// + public static Task> ListPlayAsync(this FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed atp, int? limit = 50, string? cursor = default, bool? reverse = default, CancellationToken cancellationToken = default) + { + return atp.ATProtocol.ListRecordsAsync(atp.ATProtocol.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", limit, cursor, reverse, cancellationToken); + } + + /// + /// List Play records. + /// + /// + /// + /// + /// + /// + /// + public static Task> ListPlayAsync(this FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed atp, FishyFlip.Models.ATIdentifier repo, int? limit = 50, string? cursor = default, bool? reverse = default, CancellationToken cancellationToken = default) + { + return atp.ATProtocol.ListRecordsAsync(repo, "fm.teal.alpha.feed.play", limit, cursor, reverse, cancellationToken); + } + + /// + /// Get Play records. + /// + /// + /// + /// + /// + public static Task> GetPlayAsync(this FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed atp, string rkey, string? cid = default, CancellationToken cancellationToken = default) + { + return atp.ATProtocol.GetRecordAsync(atp.ATProtocol.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "fm.teal.alpha.feed.play", rkey, cid, cancellationToken); + } + + /// + /// Get Play records. + /// + /// + /// + /// + /// + /// + public static Task> GetPlayAsync(this FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.FmTealAlphaFeed atp, FishyFlip.Models.ATIdentifier repo, string rkey, string? cid = default, CancellationToken cancellationToken = default) + { + return atp.ATProtocol.GetRecordAsync(repo, "fm.teal.alpha.feed.play", rkey, cid, cancellationToken); + } + } +} + diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FmTealAlphaFeed.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FmTealAlphaFeed.g.cs new file mode 100644 index 0000000..b07e27e --- /dev/null +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/FmTealAlphaFeed.g.cs @@ -0,0 +1,58 @@ +// +// This file was generated by FFSourceGen. +// Do not modify this file. + +#nullable enable + +namespace FishyFlip.Lexicon.Fm.Teal.Alpha.Feed +{ + + /// + /// fm.teal.alpha.feed Endpoint Class. + /// + public sealed class FmTealAlphaFeed + { + + private ATProtocol atp; + + /// + /// Initializes a new instance of the class. + /// + /// . + internal FmTealAlphaFeed(ATProtocol atp) + { + this.atp = atp; + } + + /// + /// Gets the ATProtocol. + /// + internal ATProtocol ATProtocol => this.atp; + + + /// + /// Generated endpoint for fm.teal.alpha.feed.getActorFeed + /// + /// + /// + /// + public Task> GetActorFeedAsync (string cursor, FishyFlip.Models.ATIdentifier? authorDID = default, CancellationToken cancellationToken = default) + { + return atp.GetActorFeedAsync(cursor, authorDID, cancellationToken); + } + + + /// + /// Generated endpoint for fm.teal.alpha.feed.getPlay + /// + /// + /// + /// + public Task> GetPlayAsync (FishyFlip.Models.ATIdentifier authorDID, string rkey, CancellationToken cancellationToken = default) + { + return atp.GetPlayAsync(authorDID, rkey, cancellationToken); + } + + } +} + diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/GetActorFeedOutput.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/GetActorFeedOutput.g.cs new file mode 100644 index 0000000..26eaece --- /dev/null +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/GetActorFeedOutput.g.cs @@ -0,0 +1,64 @@ +// +// This file was generated by FFSourceGen. +// Do not modify this file. + +#nullable enable + +namespace FishyFlip.Lexicon.Fm.Teal.Alpha.Feed +{ + public partial class GetActorFeedOutput : ATObject + { + + /// + /// Initializes a new instance of the class. + /// + /// + public GetActorFeedOutput(List? plays = default) + { + this.Plays = plays; + } + + + /// + /// Initializes a new instance of the class. + /// + public GetActorFeedOutput() + { + } + + + /// + /// Initializes a new instance of the class. + /// + public GetActorFeedOutput(CBORObject obj) + { + if (obj["plays"] is not null) this.Plays = obj["plays"].Values.Select(n =>new Fm.Teal.Alpha.Feed.PlayView(n)).ToList(); + } + + /// + /// Gets or sets the plays. + /// + [JsonPropertyName("plays")] + [JsonRequired] + public List? Plays { get; set; } + + /// + /// Gets the ATRecord Type. + /// + [JsonPropertyName("$type")] + public override string Type => "fm.teal.alpha.feed.getActorFeed#GetActorFeedOutput"; + + public const string RecordType = "fm.teal.alpha.feed.getActorFeed#GetActorFeedOutput"; + + public override string ToJson() + { + return JsonSerializer.Serialize(this, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaFeedGetActorFeedOutput)!; + } + + public static GetActorFeedOutput FromJson(string json) + { + return JsonSerializer.Deserialize(json, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaFeedGetActorFeedOutput)!; + } + } +} + diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/GetPlayOutput.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/GetPlayOutput.g.cs new file mode 100644 index 0000000..9f75d5a --- /dev/null +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/GetPlayOutput.g.cs @@ -0,0 +1,67 @@ +// +// This file was generated by FFSourceGen. +// Do not modify this file. + +#nullable enable + +namespace FishyFlip.Lexicon.Fm.Teal.Alpha.Feed +{ + public partial class GetPlayOutput : ATObject + { + + /// + /// Initializes a new instance of the class. + /// + /// + /// (fm.teal.alpha.feed.defs#playView) + /// + public GetPlayOutput(Fm.Teal.Alpha.Feed.PlayView? play = default) + { + this.Play = play; + } + + + /// + /// Initializes a new instance of the class. + /// + public GetPlayOutput() + { + } + + + /// + /// Initializes a new instance of the class. + /// + public GetPlayOutput(CBORObject obj) + { + if (obj["play"] is not null) this.Play = new Fm.Teal.Alpha.Feed.PlayView(obj["play"]); + } + + /// + /// Gets or sets the play. + ///
(fm.teal.alpha.feed.defs#playView) + ///
+ [JsonPropertyName("play")] + [JsonRequired] + public Fm.Teal.Alpha.Feed.PlayView? Play { get; set; } + + /// + /// Gets the ATRecord Type. + /// + [JsonPropertyName("$type")] + public override string Type => "fm.teal.alpha.feed.getPlay#GetPlayOutput"; + + public const string RecordType = "fm.teal.alpha.feed.getPlay#GetPlayOutput"; + + public override string ToJson() + { + return JsonSerializer.Serialize(this, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaFeedGetPlayOutput)!; + } + + public static GetPlayOutput FromJson(string json) + { + return JsonSerializer.Deserialize(json, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaFeedGetPlayOutput)!; + } + } +} + diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Play.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/Play.g.cs similarity index 82% rename from src/FishyFlip/Lexicon/Fm/Teal/Alpha/Play.g.cs rename to src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/Play.g.cs index 39145cb..6729fbd 100644 --- a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Play.g.cs +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/Play.g.cs @@ -4,7 +4,7 @@ #nullable enable -namespace FishyFlip.Lexicon.Fm.Teal.Alpha +namespace FishyFlip.Lexicon.Fm.Teal.Alpha.Feed { public partial class Play : ATObject { @@ -13,7 +13,7 @@ public partial class Play : ATObject /// Initializes a new instance of the class. ///
/// The name of the track - /// The name of the artist + /// Array of artist names in order of original appearance. /// The Musicbrainz ID of the track /// The Musicbrainz recording ID of the track /// The length of the track in seconds @@ -25,13 +25,13 @@ public partial class Play : ATObject /// The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided. /// A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided. /// The unix timestamp of when the track was played - public Play(string? trackName, string? artistName, string? trackMbId = default, string? recordingMbId = default, long? duration = default, List? artistMbIds = default, string? releaseName = default, string? releaseMbId = default, string? isrc = default, string? originUrl = default, string? musicServiceBaseDomain = default, string? submissionClientAgent = default, DateTime? playedTime = default) + public Play(string? trackName, List? artistNames, string? trackMbId = default, string? recordingMbId = default, long? duration = default, List? artistMbIds = default, string? releaseName = default, string? releaseMbId = default, string? isrc = default, string? originUrl = default, string? musicServiceBaseDomain = default, string? submissionClientAgent = default, DateTime? playedTime = default) { this.TrackName = trackName; this.TrackMbId = trackMbId; this.RecordingMbId = recordingMbId; this.Duration = duration; - this.ArtistName = artistName; + this.ArtistNames = artistNames; this.ArtistMbIds = artistMbIds; this.ReleaseName = releaseName; this.ReleaseMbId = releaseMbId; @@ -60,7 +60,7 @@ public Play(CBORObject obj) if (obj["trackMbId"] is not null) this.TrackMbId = obj["trackMbId"].AsString(); if (obj["recordingMbId"] is not null) this.RecordingMbId = obj["recordingMbId"].AsString(); if (obj["duration"] is not null) this.Duration = obj["duration"].AsInt64Value(); - if (obj["artistName"] is not null) this.ArtistName = obj["artistName"].AsString(); + if (obj["artistNames"] is not null) this.ArtistNames = obj["artistNames"].Values.Select(n =>n.AsString()).ToList(); if (obj["artistMbIds"] is not null) this.ArtistMbIds = obj["artistMbIds"].Values.Select(n =>n.AsString()).ToList(); if (obj["releaseName"] is not null) this.ReleaseName = obj["releaseName"].AsString(); if (obj["releaseMbId"] is not null) this.ReleaseMbId = obj["releaseMbId"].AsString(); @@ -100,11 +100,11 @@ public Play(CBORObject obj) public long? Duration { get; set; } /// - /// Gets or sets the artistName. - ///
The name of the artist + /// Gets or sets the artistNames. + ///
Array of artist names in order of original appearance. ///
- [JsonPropertyName("artistName")] - public string? ArtistName { get; set; } + [JsonPropertyName("artistNames")] + public List? ArtistNames { get; set; } /// /// Gets or sets the artistMbIds. @@ -166,18 +166,18 @@ public Play(CBORObject obj) /// Gets the ATRecord Type. /// [JsonPropertyName("$type")] - public override string Type => "fm.teal.alpha.play"; + public override string Type => "fm.teal.alpha.feed.play"; - public const string RecordType = "fm.teal.alpha.play"; + public const string RecordType = "fm.teal.alpha.feed.play"; public override string ToJson() { - return JsonSerializer.Serialize(this, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaPlay)!; + return JsonSerializer.Serialize(this, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaFeedPlay)!; } public static Play FromJson(string json) { - return JsonSerializer.Deserialize(json, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaPlay)!; + return JsonSerializer.Deserialize(json, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaFeedPlay)!; } } } diff --git a/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/PlayView.g.cs b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/PlayView.g.cs new file mode 100644 index 0000000..358975d --- /dev/null +++ b/src/FishyFlip/Lexicon/Fm/Teal/Alpha/Feed/PlayView.g.cs @@ -0,0 +1,186 @@ +// +// This file was generated by FFSourceGen. +// Do not modify this file. + +#nullable enable + +namespace FishyFlip.Lexicon.Fm.Teal.Alpha.Feed +{ + public partial class PlayView : ATObject + { + + /// + /// Initializes a new instance of the class. + /// + /// The name of the track + /// The Musicbrainz ID of the track + /// The Musicbrainz recording ID of the track + /// The length of the track in seconds + /// Array of artist names in order of original appearance. + /// Array of Musicbrainz artist IDs + /// The name of the release/album + /// The Musicbrainz release ID + /// The ISRC code associated with the recording + /// The URL associated with this track + /// The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided. + /// A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided. + /// The unix timestamp of when the track was played + public PlayView(string? trackName = default, string? trackMbId = default, string? recordingMbId = default, long? duration = default, List? artistNames = default, List? artistMbIds = default, string? releaseName = default, string? releaseMbId = default, string? isrc = default, string? originUrl = default, string? musicServiceBaseDomain = default, string? submissionClientAgent = default, DateTime? playedTime = default) + { + this.TrackName = trackName; + this.TrackMbId = trackMbId; + this.RecordingMbId = recordingMbId; + this.Duration = duration; + this.ArtistNames = artistNames; + this.ArtistMbIds = artistMbIds; + this.ReleaseName = releaseName; + this.ReleaseMbId = releaseMbId; + this.Isrc = isrc; + this.OriginUrl = originUrl; + this.MusicServiceBaseDomain = musicServiceBaseDomain; + this.SubmissionClientAgent = submissionClientAgent; + this.PlayedTime = playedTime; + } + + + /// + /// Initializes a new instance of the class. + /// + public PlayView() + { + } + + + /// + /// Initializes a new instance of the class. + /// + public PlayView(CBORObject obj) + { + if (obj["trackName"] is not null) this.TrackName = obj["trackName"].AsString(); + if (obj["trackMbId"] is not null) this.TrackMbId = obj["trackMbId"].AsString(); + if (obj["recordingMbId"] is not null) this.RecordingMbId = obj["recordingMbId"].AsString(); + if (obj["duration"] is not null) this.Duration = obj["duration"].AsInt64Value(); + if (obj["artistNames"] is not null) this.ArtistNames = obj["artistNames"].Values.Select(n =>n.AsString()).ToList(); + if (obj["artistMbIds"] is not null) this.ArtistMbIds = obj["artistMbIds"].Values.Select(n =>n.AsString()).ToList(); + if (obj["releaseName"] is not null) this.ReleaseName = obj["releaseName"].AsString(); + if (obj["releaseMbId"] is not null) this.ReleaseMbId = obj["releaseMbId"].AsString(); + if (obj["isrc"] is not null) this.Isrc = obj["isrc"].AsString(); + if (obj["originUrl"] is not null) this.OriginUrl = obj["originUrl"].AsString(); + if (obj["musicServiceBaseDomain"] is not null) this.MusicServiceBaseDomain = obj["musicServiceBaseDomain"].AsString(); + if (obj["submissionClientAgent"] is not null) this.SubmissionClientAgent = obj["submissionClientAgent"].AsString(); + if (obj["playedTime"] is not null) this.PlayedTime = obj["playedTime"].ToDateTime(); + } + + /// + /// Gets or sets the trackName. + ///
The name of the track + ///
+ [JsonPropertyName("trackName")] + [JsonRequired] + public string? TrackName { get; set; } + + /// + /// Gets or sets the trackMbId. + ///
The Musicbrainz ID of the track + ///
+ [JsonPropertyName("trackMbId")] + public string? TrackMbId { get; set; } + + /// + /// Gets or sets the recordingMbId. + ///
The Musicbrainz recording ID of the track + ///
+ [JsonPropertyName("recordingMbId")] + public string? RecordingMbId { get; set; } + + /// + /// Gets or sets the duration. + ///
The length of the track in seconds + ///
+ [JsonPropertyName("duration")] + public long? Duration { get; set; } + + /// + /// Gets or sets the artistNames. + ///
Array of artist names in order of original appearance. + ///
+ [JsonPropertyName("artistNames")] + [JsonRequired] + public List? ArtistNames { get; set; } + + /// + /// Gets or sets the artistMbIds. + ///
Array of Musicbrainz artist IDs + ///
+ [JsonPropertyName("artistMbIds")] + public List? ArtistMbIds { get; set; } + + /// + /// Gets or sets the releaseName. + ///
The name of the release/album + ///
+ [JsonPropertyName("releaseName")] + public string? ReleaseName { get; set; } + + /// + /// Gets or sets the releaseMbId. + ///
The Musicbrainz release ID + ///
+ [JsonPropertyName("releaseMbId")] + public string? ReleaseMbId { get; set; } + + /// + /// Gets or sets the isrc. + ///
The ISRC code associated with the recording + ///
+ [JsonPropertyName("isrc")] + public string? Isrc { get; set; } + + /// + /// Gets or sets the originUrl. + ///
The URL associated with this track + ///
+ [JsonPropertyName("originUrl")] + public string? OriginUrl { get; set; } + + /// + /// Gets or sets the musicServiceBaseDomain. + ///
The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided. + ///
+ [JsonPropertyName("musicServiceBaseDomain")] + public string? MusicServiceBaseDomain { get; set; } + + /// + /// Gets or sets the submissionClientAgent. + ///
A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided. + ///
+ [JsonPropertyName("submissionClientAgent")] + public string? SubmissionClientAgent { get; set; } + + /// + /// Gets or sets the playedTime. + ///
The unix timestamp of when the track was played + ///
+ [JsonPropertyName("playedTime")] + public DateTime? PlayedTime { get; set; } + + /// + /// Gets the ATRecord Type. + /// + [JsonPropertyName("$type")] + public override string Type => "fm.teal.alpha.feed.defs#playView"; + + public const string RecordType = "fm.teal.alpha.feed.defs#playView"; + + public override string ToJson() + { + return JsonSerializer.Serialize(this, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaFeedPlayView)!; + } + + public static PlayView FromJson(string json) + { + return JsonSerializer.Deserialize(json, (JsonTypeInfo)SourceGenerationContext.Default.FmTealAlphaFeedPlayView)!; + } + } +} + diff --git a/src/FishyFlip/Lexicon/SourceGenerationContext.g.cs b/src/FishyFlip/Lexicon/SourceGenerationContext.g.cs index fed5ed4..ca84e17 100644 --- a/src/FishyFlip/Lexicon/SourceGenerationContext.g.cs +++ b/src/FishyFlip/Lexicon/SourceGenerationContext.g.cs @@ -235,6 +235,8 @@ namespace FishyFlip.Lexicon [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListComAtprotoServerGetAccountInviteCodesOutput")] [JsonSerializable(typeof(FishyFlip.Lexicon.Community.Lexicon.Bookmarks.GetActorBookmarksOutput), TypeInfoPropertyName = "CommunityLexiconBookmarksGetActorBookmarksOutput")] [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListCommunityLexiconBookmarksGetActorBookmarksOutput")] + [JsonSerializable(typeof(FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.GetActorFeedOutput), TypeInfoPropertyName = "FmTealAlphaFeedGetActorFeedOutput")] + [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListFmTealAlphaFeedGetActorFeedOutput")] [JsonSerializable(typeof(FishyFlip.Lexicon.App.Bsky.Feed.GetActorFeedsOutput), TypeInfoPropertyName = "AppBskyFeedGetActorFeedsOutput")] [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListAppBskyFeedGetActorFeedsOutput")] [JsonSerializable(typeof(FishyFlip.Lexicon.App.Bsky.Feed.GetActorLikesOutput), TypeInfoPropertyName = "AppBskyFeedGetActorLikesOutput")] @@ -313,6 +315,8 @@ namespace FishyFlip.Lexicon [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListComShinolabsPinkseaGetOekakiOutput")] [JsonSerializable(typeof(FishyFlip.Lexicon.Com.Shinolabs.Pinksea.GetParentForReplyOutput), TypeInfoPropertyName = "ComShinolabsPinkseaGetParentForReplyOutput")] [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListComShinolabsPinkseaGetParentForReplyOutput")] + [JsonSerializable(typeof(FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.GetPlayOutput), TypeInfoPropertyName = "FmTealAlphaFeedGetPlayOutput")] + [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListFmTealAlphaFeedGetPlayOutput")] [JsonSerializable(typeof(FishyFlip.Lexicon.App.Bsky.Unspecced.GetPopularFeedGeneratorsOutput), TypeInfoPropertyName = "AppBskyUnspeccedGetPopularFeedGeneratorsOutput")] [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListAppBskyUnspeccedGetPopularFeedGeneratorsOutput")] [JsonSerializable(typeof(FishyFlip.Lexicon.App.Bsky.Feed.GetPostsOutput), TypeInfoPropertyName = "AppBskyFeedGetPostsOutput")] @@ -591,8 +595,10 @@ namespace FishyFlip.Lexicon [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListToolsOzoneSettingOption")] [JsonSerializable(typeof(FishyFlip.Lexicon.App.Bsky.Actor.PersonalDetailsPref), TypeInfoPropertyName = "AppBskyActorPersonalDetailsPref")] [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListAppBskyActorPersonalDetailsPref")] - [JsonSerializable(typeof(FishyFlip.Lexicon.Fm.Teal.Alpha.Play), TypeInfoPropertyName = "FmTealAlphaPlay")] - [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListFmTealAlphaPlay")] + [JsonSerializable(typeof(FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.Play), TypeInfoPropertyName = "FmTealAlphaFeedPlay")] + [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListFmTealAlphaFeedPlay")] + [JsonSerializable(typeof(FishyFlip.Lexicon.Fm.Teal.Alpha.Feed.PlayView), TypeInfoPropertyName = "FmTealAlphaFeedPlayView")] + [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListFmTealAlphaFeedPlayView")] [JsonSerializable(typeof(FishyFlip.Lexicon.App.Bsky.Feed.Post), TypeInfoPropertyName = "AppBskyFeedPost")] [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListAppBskyFeedPost")] [JsonSerializable(typeof(FishyFlip.Lexicon.Fyi.Unravel.Frontpage.Post), TypeInfoPropertyName = "FyiUnravelFrontpagePost")] @@ -797,8 +803,6 @@ namespace FishyFlip.Lexicon [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListAppBskyGraphStarterPackViewBasic")] [JsonSerializable(typeof(FishyFlip.Lexicon.App.Netlify.Aniblue.Status), TypeInfoPropertyName = "AppNetlifyAniblueStatus")] [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListAppNetlifyAniblueStatus")] - [JsonSerializable(typeof(FishyFlip.Lexicon.Xyz.Statusphere.Status), TypeInfoPropertyName = "XyzStatusphereStatus")] - [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListXyzStatusphereStatus")] [JsonSerializable(typeof(FishyFlip.Lexicon.Fm.Teal.Alpha.Actor.Status), TypeInfoPropertyName = "FmTealAlphaActorStatus")] [JsonSerializable(typeof(List), TypeInfoPropertyName = "ListFmTealAlphaActorStatus")] [JsonSerializable(typeof(FishyFlip.Lexicon.Com.Atproto.Admin.StatusAttr), TypeInfoPropertyName = "ComAtprotoAdminStatusAttr")] diff --git a/src/FishyFlip/Lexicon/Xyz/Statusphere/ATProtoStatusphereExtensions.g.cs b/src/FishyFlip/Lexicon/Xyz/Statusphere/ATProtoStatusphereExtensions.g.cs deleted file mode 100644 index e088412..0000000 --- a/src/FishyFlip/Lexicon/Xyz/Statusphere/ATProtoStatusphereExtensions.g.cs +++ /dev/null @@ -1,133 +0,0 @@ -// -// This file was generated by FFSourceGen. -// Do not modify this file. - -#nullable enable - -using FishyFlip.Lexicon.Com.Atproto.Repo; - -namespace FishyFlip.Lexicon.Xyz.Statusphere -{ - - /// - /// Extension methods for xyz.statusphere. - /// - public static class ATProtoStatusphereExtensions - { - - /// - /// Create a Status record. - /// - /// - /// - /// - /// - /// - /// - public static Task> CreateStatusAsync(this FishyFlip.ATProtocol atp, Xyz.Statusphere.Status record, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) - { - return atp.CreateRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "xyz.statusphere.status", record, rkey, validate, swapCommit, cancellationToken); - } - - /// - /// Create a Status record. - /// - /// - /// - /// - /// - /// - /// - /// - public static Task> CreateStatusAsync(this FishyFlip.ATProtocol atp, string? status, DateTime? createdAt = default, string? rkey = default, bool? validate = default, string? swapCommit = default, CancellationToken cancellationToken = default) - { - var record = new FishyFlip.Lexicon.Xyz.Statusphere.Status(); - record.StatusValue = status; - record.CreatedAt = createdAt ?? DateTime.UtcNow; - return atp.CreateRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "xyz.statusphere.status", record, rkey, validate, swapCommit, cancellationToken); - } - - /// - /// Delete a Status record. - /// - /// - /// - /// - /// - /// - /// - public static Task> DeleteStatusAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, string rkey, string? swapRecord = default, string? swapCommit = default, CancellationToken cancellationToken = default) - { - return atp.DeleteRecordAsync(repo, "xyz.statusphere.status", rkey, swapRecord, swapCommit, cancellationToken); - } - - /// - /// Put a Status record. - /// - /// - /// - /// - /// - /// - /// - /// - /// - public static Task> PutStatusAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, string rkey, Xyz.Statusphere.Status record, bool? validate = default, string? swapRecord = default, string? swapCommit = default, CancellationToken cancellationToken = default) - { - return atp.PutRecordAsync(repo, "xyz.statusphere.status", rkey, record, validate, swapRecord, swapCommit, cancellationToken); - } - - /// - /// List Status records. - /// - /// - /// - /// - /// - /// - /// - public static Task> ListStatusAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, int? limit = 50, string? cursor = default, bool? reverse = default, CancellationToken cancellationToken = default) - { - return atp.ListRecordsAsync(repo, "xyz.statusphere.status", limit, cursor, reverse, cancellationToken); - } - - /// - /// List Status records. - /// - /// - /// - /// - /// - /// - public static Task> ListStatusAsync(this FishyFlip.ATProtocol atp, int? limit = 50, string? cursor = default, bool? reverse = default, CancellationToken cancellationToken = default) - { - return atp.ListRecordsAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "xyz.statusphere.status", limit, cursor, reverse, cancellationToken); - } - - /// - /// Get Status records. - /// - /// - /// - /// - /// - /// - public static Task> GetStatusAsync(this FishyFlip.ATProtocol atp, FishyFlip.Models.ATIdentifier repo, string rkey, string? cid = default, CancellationToken cancellationToken = default) - { - return atp.GetRecordAsync(repo, "xyz.statusphere.status", rkey, cid, cancellationToken); - } - - /// - /// Get Status records. - /// - /// - /// - /// - /// - public static Task> GetStatusAsync(this FishyFlip.ATProtocol atp, string rkey, string? cid = default, CancellationToken cancellationToken = default) - { - return atp.GetRecordAsync(atp.SessionManager.Session?.Did ?? throw new InvalidOperationException("Session did is required."), "xyz.statusphere.status", rkey, cid, cancellationToken); - } - } -} - diff --git a/src/FishyFlip/Lexicon/Xyz/Statusphere/Status.g.cs b/src/FishyFlip/Lexicon/Xyz/Statusphere/Status.g.cs deleted file mode 100644 index b41a07b..0000000 --- a/src/FishyFlip/Lexicon/Xyz/Statusphere/Status.g.cs +++ /dev/null @@ -1,72 +0,0 @@ -// -// This file was generated by FFSourceGen. -// Do not modify this file. - -#nullable enable - -namespace FishyFlip.Lexicon.Xyz.Statusphere -{ - public partial class Status : ATObject - { - - /// - /// Initializes a new instance of the class. - /// - /// - /// - public Status(string? status, DateTime? createdAt = default) - { - this.StatusValue = status; - this.CreatedAt = createdAt ?? DateTime.UtcNow; - } - - - /// - /// Initializes a new instance of the class. - /// - public Status() - { - } - - - /// - /// Initializes a new instance of the class. - /// - public Status(CBORObject obj) - { - if (obj["status"] is not null) this.StatusValue = obj["status"].AsString(); - if (obj["createdAt"] is not null) this.CreatedAt = obj["createdAt"].ToDateTime(); - } - - /// - /// Gets or sets the status. - /// - [JsonPropertyName("status")] - public string? StatusValue { get; set; } - - /// - /// Gets or sets the createdAt. - /// - [JsonPropertyName("createdAt")] - public DateTime? CreatedAt { get; set; } = DateTime.UtcNow; - - /// - /// Gets the ATRecord Type. - /// - [JsonPropertyName("$type")] - public override string Type => "xyz.statusphere.status"; - - public const string RecordType = "xyz.statusphere.status"; - - public override string ToJson() - { - return JsonSerializer.Serialize(this, (JsonTypeInfo)SourceGenerationContext.Default.XyzStatusphereStatus)!; - } - - public static Status FromJson(string json) - { - return JsonSerializer.Deserialize(json, (JsonTypeInfo)SourceGenerationContext.Default.XyzStatusphereStatus)!; - } - } -} -