diff --git a/atproto/codegen/models/generator.py b/atproto/codegen/models/generator.py index 825605be..9bb397b9 100644 --- a/atproto/codegen/models/generator.py +++ b/atproto/codegen/models/generator.py @@ -319,8 +319,11 @@ def _generate_def_model(nsid: NSID, def_name: str, def_model: models.LexObject, _get_model(nsid, def_model), ] + def_type = f'{nsid}#{def_name}' if def_name == 'main': - lines.append(f"{_(1)}_type: str = '{nsid}'") + def_type = str(nsid) + + lines.append(f"{_(1)}_type: str = '{def_type}'") lines.append('') diff --git a/atproto/xrpc_client/models/app/bsky/actor/defs.py b/atproto/xrpc_client/models/app/bsky/actor/defs.py index efff416b..077830d7 100644 --- a/atproto/xrpc_client/models/app/bsky/actor/defs.py +++ b/atproto/xrpc_client/models/app/bsky/actor/defs.py @@ -33,6 +33,8 @@ class ProfileViewBasic(base.ModelBase): labels: Optional[List['models.ComAtprotoLabelDefs.Label']] = None viewer: Optional['models.AppBskyActorDefs.ViewerState'] = None + _type: str = 'app.bsky.actor.defs#profileViewBasic' + @dataclass class ProfileView(base.ModelBase): @@ -59,6 +61,8 @@ class ProfileView(base.ModelBase): labels: Optional[List['models.ComAtprotoLabelDefs.Label']] = None viewer: Optional['models.AppBskyActorDefs.ViewerState'] = None + _type: str = 'app.bsky.actor.defs#profileView' + @dataclass class ProfileViewDetailed(base.ModelBase): @@ -93,6 +97,8 @@ class ProfileViewDetailed(base.ModelBase): postsCount: Optional[int] = None viewer: Optional['models.AppBskyActorDefs.ViewerState'] = None + _type: str = 'app.bsky.actor.defs#profileViewDetailed' + @dataclass class ViewerState(base.ModelBase): @@ -112,3 +118,5 @@ class ViewerState(base.ModelBase): followedBy: Optional[str] = None following: Optional[str] = None muted: Optional[bool] = None + + _type: str = 'app.bsky.actor.defs#viewerState' diff --git a/atproto/xrpc_client/models/app/bsky/embed/external.py b/atproto/xrpc_client/models/app/bsky/embed/external.py index 2388e605..d1ecd8c9 100644 --- a/atproto/xrpc_client/models/app/bsky/embed/external.py +++ b/atproto/xrpc_client/models/app/bsky/embed/external.py @@ -44,6 +44,8 @@ class External(base.ModelBase): uri: str thumb: Optional[BlobRef] = None + _type: str = 'app.bsky.embed.external#external' + @dataclass class View(base.ModelBase): @@ -56,6 +58,8 @@ class View(base.ModelBase): external: 'models.AppBskyEmbedExternal.ViewExternal' + _type: str = 'app.bsky.embed.external#view' + @dataclass class ViewExternal(base.ModelBase): @@ -73,3 +77,5 @@ class ViewExternal(base.ModelBase): title: str uri: str thumb: Optional[str] = None + + _type: str = 'app.bsky.embed.external#viewExternal' diff --git a/atproto/xrpc_client/models/app/bsky/embed/images.py b/atproto/xrpc_client/models/app/bsky/embed/images.py index c3b10617..3091c23f 100644 --- a/atproto/xrpc_client/models/app/bsky/embed/images.py +++ b/atproto/xrpc_client/models/app/bsky/embed/images.py @@ -40,6 +40,8 @@ class Image(base.ModelBase): alt: str image: BlobRef + _type: str = 'app.bsky.embed.images#image' + @dataclass class View(base.ModelBase): @@ -52,6 +54,8 @@ class View(base.ModelBase): images: List['models.AppBskyEmbedImages.ViewImage'] + _type: str = 'app.bsky.embed.images#view' + @dataclass class ViewImage(base.ModelBase): @@ -67,3 +71,5 @@ class ViewImage(base.ModelBase): alt: str fullsize: str thumb: str + + _type: str = 'app.bsky.embed.images#viewImage' diff --git a/atproto/xrpc_client/models/app/bsky/embed/record.py b/atproto/xrpc_client/models/app/bsky/embed/record.py index 4442bfce..e0787040 100644 --- a/atproto/xrpc_client/models/app/bsky/embed/record.py +++ b/atproto/xrpc_client/models/app/bsky/embed/record.py @@ -42,6 +42,8 @@ class View(base.ModelBase): 'Dict[str, Any]', ] + _type: str = 'app.bsky.embed.record#view' + @dataclass class ViewRecord(base.ModelBase): @@ -76,6 +78,8 @@ class ViewRecord(base.ModelBase): ] = None labels: Optional[List['models.ComAtprotoLabelDefs.Label']] = None + _type: str = 'app.bsky.embed.record#viewRecord' + @dataclass class ViewNotFound(base.ModelBase): @@ -88,6 +92,8 @@ class ViewNotFound(base.ModelBase): uri: str + _type: str = 'app.bsky.embed.record#viewNotFound' + @dataclass class ViewBlocked(base.ModelBase): @@ -99,3 +105,5 @@ class ViewBlocked(base.ModelBase): """ uri: str + + _type: str = 'app.bsky.embed.record#viewBlocked' diff --git a/atproto/xrpc_client/models/app/bsky/embed/record_with_media.py b/atproto/xrpc_client/models/app/bsky/embed/record_with_media.py index 5b146563..fed254c2 100644 --- a/atproto/xrpc_client/models/app/bsky/embed/record_with_media.py +++ b/atproto/xrpc_client/models/app/bsky/embed/record_with_media.py @@ -40,3 +40,5 @@ class View(base.ModelBase): media: Union['models.AppBskyEmbedImages.View', 'models.AppBskyEmbedExternal.View', 'Dict[str, Any]'] record: 'models.AppBskyEmbedRecord.View' + + _type: str = 'app.bsky.embed.recordWithMedia#view' diff --git a/atproto/xrpc_client/models/app/bsky/feed/defs.py b/atproto/xrpc_client/models/app/bsky/feed/defs.py index 91cc8508..33c6df88 100644 --- a/atproto/xrpc_client/models/app/bsky/feed/defs.py +++ b/atproto/xrpc_client/models/app/bsky/feed/defs.py @@ -51,6 +51,8 @@ class PostView(base.ModelBase): repostCount: Optional[int] = None viewer: Optional['models.AppBskyFeedDefs.ViewerState'] = None + _type: str = 'app.bsky.feed.defs#postView' + @dataclass class ViewerState(base.ModelBase): @@ -65,6 +67,8 @@ class ViewerState(base.ModelBase): like: Optional[str] = None repost: Optional[str] = None + _type: str = 'app.bsky.feed.defs#viewerState' + @dataclass class FeedViewPost(base.ModelBase): @@ -81,6 +85,8 @@ class FeedViewPost(base.ModelBase): reason: Optional[Union['models.AppBskyFeedDefs.ReasonRepost', 'Dict[str, Any]']] = None reply: Optional['models.AppBskyFeedDefs.ReplyRef'] = None + _type: str = 'app.bsky.feed.defs#feedViewPost' + @dataclass class ReplyRef(base.ModelBase): @@ -95,6 +101,8 @@ class ReplyRef(base.ModelBase): parent: 'models.AppBskyFeedDefs.PostView' root: 'models.AppBskyFeedDefs.PostView' + _type: str = 'app.bsky.feed.defs#replyRef' + @dataclass class ReasonRepost(base.ModelBase): @@ -109,6 +117,8 @@ class ReasonRepost(base.ModelBase): by: 'models.AppBskyActorDefs.ProfileViewBasic' indexedAt: str + _type: str = 'app.bsky.feed.defs#reasonRepost' + @dataclass class ThreadViewPost(base.ModelBase): @@ -141,6 +151,8 @@ class ThreadViewPost(base.ModelBase): ] ] = None + _type: str = 'app.bsky.feed.defs#threadViewPost' + @dataclass class NotFoundPost(base.ModelBase): @@ -155,6 +167,8 @@ class NotFoundPost(base.ModelBase): notFound: bool uri: str + _type: str = 'app.bsky.feed.defs#notFoundPost' + @dataclass class BlockedPost(base.ModelBase): @@ -168,3 +182,5 @@ class BlockedPost(base.ModelBase): blocked: bool uri: str + + _type: str = 'app.bsky.feed.defs#blockedPost' diff --git a/atproto/xrpc_client/models/app/bsky/feed/get_likes.py b/atproto/xrpc_client/models/app/bsky/feed/get_likes.py index 881c8933..913dd2c7 100644 --- a/atproto/xrpc_client/models/app/bsky/feed/get_likes.py +++ b/atproto/xrpc_client/models/app/bsky/feed/get_likes.py @@ -62,3 +62,5 @@ class Like(base.ModelBase): actor: 'models.AppBskyActorDefs.ProfileView' createdAt: str indexedAt: str + + _type: str = 'app.bsky.feed.getLikes#like' diff --git a/atproto/xrpc_client/models/app/bsky/feed/post.py b/atproto/xrpc_client/models/app/bsky/feed/post.py index da961718..93792775 100644 --- a/atproto/xrpc_client/models/app/bsky/feed/post.py +++ b/atproto/xrpc_client/models/app/bsky/feed/post.py @@ -25,6 +25,8 @@ class ReplyRef(base.ModelBase): parent: 'models.ComAtprotoRepoStrongRef.Main' root: 'models.ComAtprotoRepoStrongRef.Main' + _type: str = 'app.bsky.feed.post#replyRef' + @dataclass class Entity(base.ModelBase): @@ -41,6 +43,8 @@ class Entity(base.ModelBase): type: str value: str + _type: str = 'app.bsky.feed.post#entity' + @dataclass class TextSlice(base.ModelBase): @@ -55,6 +59,8 @@ class TextSlice(base.ModelBase): end: int start: int + _type: str = 'app.bsky.feed.post#textSlice' + @dataclass class Main(base.RecordModelBase): diff --git a/atproto/xrpc_client/models/app/bsky/notification/list_notifications.py b/atproto/xrpc_client/models/app/bsky/notification/list_notifications.py index 268bf2c0..20c732aa 100644 --- a/atproto/xrpc_client/models/app/bsky/notification/list_notifications.py +++ b/atproto/xrpc_client/models/app/bsky/notification/list_notifications.py @@ -68,3 +68,5 @@ class Notification(base.ModelBase): uri: str labels: Optional[List['models.ComAtprotoLabelDefs.Label']] = None reasonSubject: Optional[str] = None + + _type: str = 'app.bsky.notification.listNotifications#notification' diff --git a/atproto/xrpc_client/models/app/bsky/richtext/facet.py b/atproto/xrpc_client/models/app/bsky/richtext/facet.py index 3e94aa3c..0c069d6d 100644 --- a/atproto/xrpc_client/models/app/bsky/richtext/facet.py +++ b/atproto/xrpc_client/models/app/bsky/richtext/facet.py @@ -39,6 +39,8 @@ class Mention(base.ModelBase): did: str + _type: str = 'app.bsky.richtext.facet#mention' + @dataclass class Link(base.ModelBase): @@ -51,6 +53,8 @@ class Link(base.ModelBase): uri: str + _type: str = 'app.bsky.richtext.facet#link' + @dataclass class ByteSlice(base.ModelBase): @@ -64,3 +68,5 @@ class ByteSlice(base.ModelBase): byteEnd: int byteStart: int + + _type: str = 'app.bsky.richtext.facet#byteSlice' diff --git a/atproto/xrpc_client/models/com/atproto/admin/defs.py b/atproto/xrpc_client/models/com/atproto/admin/defs.py index 3fa52a6f..6c212907 100644 --- a/atproto/xrpc_client/models/com/atproto/admin/defs.py +++ b/atproto/xrpc_client/models/com/atproto/admin/defs.py @@ -45,6 +45,8 @@ class ActionView(base.ModelBase): negateLabelVals: Optional[List[str]] = None reversal: Optional['models.ComAtprotoAdminDefs.ActionReversal'] = None + _type: str = 'com.atproto.admin.defs#actionView' + @dataclass class ActionViewDetail(base.ModelBase): @@ -77,6 +79,8 @@ class ActionViewDetail(base.ModelBase): negateLabelVals: Optional[List[str]] = None reversal: Optional['models.ComAtprotoAdminDefs.ActionReversal'] = None + _type: str = 'com.atproto.admin.defs#actionViewDetail' + @dataclass class ActionViewCurrent(base.ModelBase): @@ -91,6 +95,8 @@ class ActionViewCurrent(base.ModelBase): action: 'models.ComAtprotoAdminDefs.ActionType' id: int + _type: str = 'com.atproto.admin.defs#actionViewCurrent' + @dataclass class ActionReversal(base.ModelBase): @@ -107,6 +113,8 @@ class ActionReversal(base.ModelBase): createdBy: str reason: str + _type: str = 'com.atproto.admin.defs#actionReversal' + ActionType = Literal['Takedown', 'Flag', 'Acknowledge', 'Escalate'] @@ -142,6 +150,8 @@ class ReportView(base.ModelBase): subject: Union['models.ComAtprotoAdminDefs.RepoRef', 'models.ComAtprotoRepoStrongRef.Main', 'Dict[str, Any]'] reason: Optional[str] = None + _type: str = 'com.atproto.admin.defs#reportView' + @dataclass class ReportViewDetail(base.ModelBase): @@ -166,6 +176,8 @@ class ReportViewDetail(base.ModelBase): subject: Union['models.ComAtprotoAdminDefs.RepoView', 'models.ComAtprotoAdminDefs.RecordView', 'Dict[str, Any]'] reason: Optional[str] = None + _type: str = 'com.atproto.admin.defs#reportViewDetail' + @dataclass class RepoView(base.ModelBase): @@ -190,6 +202,8 @@ class RepoView(base.ModelBase): email: Optional[str] = None invitedBy: Optional['models.ComAtprotoServerDefs.InviteCode'] = None + _type: str = 'com.atproto.admin.defs#repoView' + @dataclass class RepoViewDetail(base.ModelBase): @@ -218,6 +232,8 @@ class RepoViewDetail(base.ModelBase): invites: Optional[List['models.ComAtprotoServerDefs.InviteCode']] = None labels: Optional[List['models.ComAtprotoLabelDefs.Label']] = None + _type: str = 'com.atproto.admin.defs#repoViewDetail' + @dataclass class RepoRef(base.ModelBase): @@ -230,6 +246,8 @@ class RepoRef(base.ModelBase): did: str + _type: str = 'com.atproto.admin.defs#repoRef' + @dataclass class RecordView(base.ModelBase): @@ -254,6 +272,8 @@ class RecordView(base.ModelBase): uri: str value: 'base.RecordModelBase' + _type: str = 'com.atproto.admin.defs#recordView' + @dataclass class RecordViewDetail(base.ModelBase): @@ -280,6 +300,8 @@ class RecordViewDetail(base.ModelBase): value: 'base.RecordModelBase' labels: Optional[List['models.ComAtprotoLabelDefs.Label']] = None + _type: str = 'com.atproto.admin.defs#recordViewDetail' + @dataclass class Moderation(base.ModelBase): @@ -292,6 +314,8 @@ class Moderation(base.ModelBase): currentAction: Optional['models.ComAtprotoAdminDefs.ActionViewCurrent'] = None + _type: str = 'com.atproto.admin.defs#moderation' + @dataclass class ModerationDetail(base.ModelBase): @@ -308,6 +332,8 @@ class ModerationDetail(base.ModelBase): reports: List['models.ComAtprotoAdminDefs.ReportView'] currentAction: Optional['models.ComAtprotoAdminDefs.ActionViewCurrent'] = None + _type: str = 'com.atproto.admin.defs#moderationDetail' + @dataclass class BlobView(base.ModelBase): @@ -332,6 +358,8 @@ class BlobView(base.ModelBase): ] = None moderation: Optional['models.ComAtprotoAdminDefs.Moderation'] = None + _type: str = 'com.atproto.admin.defs#blobView' + @dataclass class ImageDetails(base.ModelBase): @@ -346,6 +374,8 @@ class ImageDetails(base.ModelBase): height: int width: int + _type: str = 'com.atproto.admin.defs#imageDetails' + @dataclass class VideoDetails(base.ModelBase): @@ -361,3 +391,5 @@ class VideoDetails(base.ModelBase): height: int length: int width: int + + _type: str = 'com.atproto.admin.defs#videoDetails' diff --git a/atproto/xrpc_client/models/com/atproto/label/defs.py b/atproto/xrpc_client/models/com/atproto/label/defs.py index 182c5454..9fa7b441 100644 --- a/atproto/xrpc_client/models/com/atproto/label/defs.py +++ b/atproto/xrpc_client/models/com/atproto/label/defs.py @@ -31,3 +31,5 @@ class Label(base.ModelBase): val: str cid: Optional[str] = None neg: Optional[bool] = None + + _type: str = 'com.atproto.label.defs#label' diff --git a/atproto/xrpc_client/models/com/atproto/label/subscribe_labels.py b/atproto/xrpc_client/models/com/atproto/label/subscribe_labels.py index 4cb8428d..006ffeae 100644 --- a/atproto/xrpc_client/models/com/atproto/label/subscribe_labels.py +++ b/atproto/xrpc_client/models/com/atproto/label/subscribe_labels.py @@ -25,6 +25,8 @@ class Labels(base.ModelBase): labels: List['models.ComAtprotoLabelDefs.Label'] seq: int + _type: str = 'com.atproto.label.subscribeLabels#labels' + @dataclass class Info(base.ModelBase): @@ -38,3 +40,5 @@ class Info(base.ModelBase): name: str message: Optional[str] = None + + _type: str = 'com.atproto.label.subscribeLabels#info' diff --git a/atproto/xrpc_client/models/com/atproto/repo/apply_writes.py b/atproto/xrpc_client/models/com/atproto/repo/apply_writes.py index 2bde3827..a1f10d66 100644 --- a/atproto/xrpc_client/models/com/atproto/repo/apply_writes.py +++ b/atproto/xrpc_client/models/com/atproto/repo/apply_writes.py @@ -52,6 +52,8 @@ class Create(base.ModelBase): value: 'base.RecordModelBase' rkey: Optional[str] = None + _type: str = 'com.atproto.repo.applyWrites#create' + @dataclass class Update(base.ModelBase): @@ -68,6 +70,8 @@ class Update(base.ModelBase): rkey: str value: 'base.RecordModelBase' + _type: str = 'com.atproto.repo.applyWrites#update' + @dataclass class Delete(base.ModelBase): @@ -81,3 +85,5 @@ class Delete(base.ModelBase): collection: str rkey: str + + _type: str = 'com.atproto.repo.applyWrites#delete' diff --git a/atproto/xrpc_client/models/com/atproto/repo/list_records.py b/atproto/xrpc_client/models/com/atproto/repo/list_records.py index 313e8b01..b46a5b93 100644 --- a/atproto/xrpc_client/models/com/atproto/repo/list_records.py +++ b/atproto/xrpc_client/models/com/atproto/repo/list_records.py @@ -64,3 +64,5 @@ class Record(base.ModelBase): cid: str uri: str value: 'base.RecordModelBase' + + _type: str = 'com.atproto.repo.listRecords#record' diff --git a/atproto/xrpc_client/models/com/atproto/server/create_app_password.py b/atproto/xrpc_client/models/com/atproto/server/create_app_password.py index 38794705..29244a2b 100644 --- a/atproto/xrpc_client/models/com/atproto/server/create_app_password.py +++ b/atproto/xrpc_client/models/com/atproto/server/create_app_password.py @@ -38,6 +38,8 @@ class AppPassword(base.ModelBase): name: str password: str + _type: str = 'com.atproto.server.createAppPassword#appPassword' + #: Response reference to :obj:`AppPassword` model. ResponseRef: Type[AppPassword] = AppPassword diff --git a/atproto/xrpc_client/models/com/atproto/server/create_invite_codes.py b/atproto/xrpc_client/models/com/atproto/server/create_invite_codes.py index 5386e772..e9958bbe 100644 --- a/atproto/xrpc_client/models/com/atproto/server/create_invite_codes.py +++ b/atproto/xrpc_client/models/com/atproto/server/create_invite_codes.py @@ -52,3 +52,5 @@ class AccountCodes(base.ModelBase): account: str codes: List[str] + + _type: str = 'com.atproto.server.createInviteCodes#accountCodes' diff --git a/atproto/xrpc_client/models/com/atproto/server/defs.py b/atproto/xrpc_client/models/com/atproto/server/defs.py index 6744ef47..885af635 100644 --- a/atproto/xrpc_client/models/com/atproto/server/defs.py +++ b/atproto/xrpc_client/models/com/atproto/server/defs.py @@ -35,6 +35,8 @@ class InviteCode(base.ModelBase): forAccount: str uses: List['models.ComAtprotoServerDefs.InviteCodeUse'] + _type: str = 'com.atproto.server.defs#inviteCode' + @dataclass class InviteCodeUse(base.ModelBase): @@ -48,3 +50,5 @@ class InviteCodeUse(base.ModelBase): usedAt: str usedBy: str + + _type: str = 'com.atproto.server.defs#inviteCodeUse' diff --git a/atproto/xrpc_client/models/com/atproto/server/describe_server.py b/atproto/xrpc_client/models/com/atproto/server/describe_server.py index e1917943..49e086ec 100644 --- a/atproto/xrpc_client/models/com/atproto/server/describe_server.py +++ b/atproto/xrpc_client/models/com/atproto/server/describe_server.py @@ -40,3 +40,5 @@ class Links(base.ModelBase): privacyPolicy: Optional[str] = None termsOfService: Optional[str] = None + + _type: str = 'com.atproto.server.describeServer#links' diff --git a/atproto/xrpc_client/models/com/atproto/server/list_app_passwords.py b/atproto/xrpc_client/models/com/atproto/server/list_app_passwords.py index 7e4ea286..b102c206 100644 --- a/atproto/xrpc_client/models/com/atproto/server/list_app_passwords.py +++ b/atproto/xrpc_client/models/com/atproto/server/list_app_passwords.py @@ -36,3 +36,5 @@ class AppPassword(base.ModelBase): createdAt: str name: str + + _type: str = 'com.atproto.server.listAppPasswords#appPassword' diff --git a/atproto/xrpc_client/models/com/atproto/sync/list_repos.py b/atproto/xrpc_client/models/com/atproto/sync/list_repos.py index 828bfb10..8de0635e 100644 --- a/atproto/xrpc_client/models/com/atproto/sync/list_repos.py +++ b/atproto/xrpc_client/models/com/atproto/sync/list_repos.py @@ -52,3 +52,5 @@ class Repo(base.ModelBase): did: str head: str + + _type: str = 'com.atproto.sync.listRepos#repo' diff --git a/atproto/xrpc_client/models/com/atproto/sync/subscribe_repos.py b/atproto/xrpc_client/models/com/atproto/sync/subscribe_repos.py index 4e545954..a6935964 100644 --- a/atproto/xrpc_client/models/com/atproto/sync/subscribe_repos.py +++ b/atproto/xrpc_client/models/com/atproto/sync/subscribe_repos.py @@ -42,6 +42,8 @@ class Commit(base.ModelBase): tooBig: bool prev: Optional[CID] = None + _type: str = 'com.atproto.sync.subscribeRepos#commit' + @dataclass class Handle(base.ModelBase): @@ -60,6 +62,8 @@ class Handle(base.ModelBase): seq: int time: str + _type: str = 'com.atproto.sync.subscribeRepos#handle' + @dataclass class Migrate(base.ModelBase): @@ -78,6 +82,8 @@ class Migrate(base.ModelBase): time: str migrateTo: Optional[str] = None + _type: str = 'com.atproto.sync.subscribeRepos#migrate' + @dataclass class Tombstone(base.ModelBase): @@ -94,6 +100,8 @@ class Tombstone(base.ModelBase): seq: int time: str + _type: str = 'com.atproto.sync.subscribeRepos#tombstone' + @dataclass class Info(base.ModelBase): @@ -108,6 +116,8 @@ class Info(base.ModelBase): name: str message: Optional[str] = None + _type: str = 'com.atproto.sync.subscribeRepos#info' + @dataclass class RepoOp(base.ModelBase): @@ -123,3 +133,5 @@ class RepoOp(base.ModelBase): action: str path: str cid: Optional[CID] = None + + _type: str = 'com.atproto.sync.subscribeRepos#repoOp' diff --git a/atproto/xrpc_client/models/utils.py b/atproto/xrpc_client/models/utils.py index 02ab511d..67661dfe 100644 --- a/atproto/xrpc_client/models/utils.py +++ b/atproto/xrpc_client/models/utils.py @@ -48,6 +48,7 @@ def get_or_create_model(model_data: Union[dict], model: Type[M]) -> Optional[M]: return from_dict(model, model_data, config=_DACITE_CONFIG) except TypeError as e: + # FIXME(MarshalX): "Params missing 1 required positional argument: 'rkey'" should raise another error msg = str(e).replace('__init__()', model.__name__) raise UnexpectedFieldError(msg) except exceptions.MissingValueError as e: diff --git a/examples/advanced_usage/home_timeline.py b/examples/advanced_usage/home_timeline.py index 2db0e997..9b971551 100644 --- a/examples/advanced_usage/home_timeline.py +++ b/examples/advanced_usage/home_timeline.py @@ -21,7 +21,9 @@ def main(): post = feed_view.post.record author = feed_view.post.author - print(f'[{action} by {action_by}] Post author: {author.displayName}. Posted at {post.createdAt}. Post text: {post.text}') + print( + f'[{action} by {action_by}] Post author: {author.displayName}. Posted at {post.createdAt}. Post text: {post.text}' + ) if __name__ == '__main__': diff --git a/examples/advanced_usage/send_rich_text.py b/examples/advanced_usage/send_rich_text.py new file mode 100644 index 00000000..e90459ca --- /dev/null +++ b/examples/advanced_usage/send_rich_text.py @@ -0,0 +1,32 @@ +from atproto import Client, models + + +def main(): + client = Client() + client.login('my-handle', 'my-password') + + from datetime import datetime + + text = 'example link' + url = 'https://google.com' + + facets = [ + models.AppBskyRichtextFacet.Main( + features=[models.AppBskyRichtextFacet.Link(uri=url)], + # we should pass when our link starts and ends in the text + # the example below selects all the text + index=models.AppBskyRichtextFacet.ByteSlice(byteStart=0, byteEnd=len(text.encode('UTF-8'))), + ) + ] + + client.com.atproto.repo.create_record( + models.ComAtprotoRepoCreateRecord.Data( + repo=client.me.did, # or any another DID + collection='app.bsky.feed.post', + record=models.AppBskyFeedPost.Main(createdAt=datetime.now().isoformat(), text=text, facets=facets), + ) + ) + + +if __name__ == '__main__': + main() diff --git a/pyproject.toml b/pyproject.toml index 6e63c03f..3d183a1f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "atproto" -version = "0.0.3" +version = "0.0.4" description = "The AT Protocol SDK" authors = ["Ilya (Marshal) "] license = "MIT" diff --git a/test.py b/test.py index e6c05e26..03b0c28d 100644 --- a/test.py +++ b/test.py @@ -30,9 +30,19 @@ def convert_uri_to_url(): def sync_main(): client = Client() client.login(os.environ['USERNAME'], os.environ['PASSWORD']) - search_result = client.bsky.actor.search_actors_typeahead({'term': 'marshal'}) - for actor in search_result.actors: - print(actor.handle, actor.displayName) + + # search_result = client.bsky.actor.search_actors_typeahead({'term': 'marshal'}) + # for actor in search_result.actors: + # print(actor.handle, actor.displayName) + + # session = client.com.atproto.server.create_session({'identifier': 'my-handle', 'password': 'my-pass'}) + # token = session.accessJwt + # refresh_token = session.refreshJwt + # + # refreshed_session = client.com.atproto.server.refresh_session(headers={'Authorization': f'Bearer {refresh_token}'}) + # new_token = refreshed_session.accessJwt + + # client.com.atproto.repo.get_record({'collection': 'app.bsky.feed.post', 'repo': 'arta.bsky.social'}) # with open('cat2.jpg', 'rb') as f: # cat_data = f.read()