Skip to content

Releases: MarshalX/atproto

v0.0.44

05 Mar 21:27
4929b5d
Compare
Choose a tag to compare

What's Changed

  • Add identity firehose message by @MarshalX in #294
  • Update lexicons fetched from d643b5b committed 2024-02-23T22:59:47Z by @MarshalX in #293
  • Update lexicons fetched from c7e6ef0 committed 2024-03-05T19:27:25Z by @MarshalX in #295
  • Fix typo in README by @yallxe in #291

New Contributors

Full Changelog: v0.0.43...v0.0.44

v0.0.43

22 Feb 19:59
b8878c6
Compare
Choose a tag to compare

What's Changed

🎉 New lexicon introduces Account Migration between PDS. More info: https://github.com/bluesky-social/pds/blob/main/ACCOUNT_MIGRATION.md

Full Changelog: v0.0.42...v0.0.43

v0.0.42

17 Feb 19:38
9a209dc
Compare
Choose a tag to compare

What's Changed

  • Add send_ogp_link_card.py (Open Graph protocol) example by @OhkuboSGMS in #273
  • Update lexicons fetched from 8c94979 committed 2024-02-16T02:12:39Z by @MarshalX in #279
  • Bump cryptography from 41.0.7 to 42.0.2 by @dependabot in #280
  • Fix pyright for pydantic aliases via alias_generator by @MarshalX in #277
  • Fix filter argument of get_author_feed method in #278
  • Fix pyright errors part 1 by @MarshalX in #278

New Contributors

Full Changelog: v0.0.41...v0.0.42

v0.0.41

09 Feb 21:16
7b43b20
Compare
Choose a tag to compare

What's Changed

🔥 New documentation page about auth and session reusing!

  • Add on session change callback by @MarshalX in #269
  • Update lexicons fetched from e4ec7af committed 2024-02-06T00:10:44Z by @MarshalX in #271

Full Changelog: v0.0.40...v0.0.41

v0.0.40

04 Feb 10:58
3bbfa43
Compare
Choose a tag to compare

What's Changed

Syntax sugar for records is here! Check out how simple work with basic operations is:

from atproto import AtUri, Client, models

client = Client()
client.login('my-username', 'my-password')

# get records list
posts = client.app.bsky.feed.post.list(client.me.did, limit=10)
for uri, post in posts.records.items():
    print(uri, post.text)

# get specific record
post = client.app.bsky.feed.post.get(client.me.did, AtUri.from_str(uri).rkey)
print(post.value.text)

# create new record
post_record = models.AppBskyFeedPost.Record(text='test record namespaces', created_at=client.get_current_time_iso())
new_post = client.app.bsky.feed.post.create(client.me.did, post_record)
print(new_post)

# delete record
deleted_post = client.app.bsky.feed.post.delete(client.me.did, AtUri.from_str(new_post.uri).rkey)
print(deleted_post)

⚠️ Record models have been renamed from "Main" to "Record". Backward compatibility is provided but will be removed soon!
⚠️ Internals of High-Level Clients have been migrated to new syntax sugar. It could affect you because returned models are changed but the fields are the same.

  • Add record syntax sugar with get, list, create, and delete methods by @MarshalX in #263
  • Rename record models from "Main" to "Record" by @MarshalX in #264
  • Integrate syntax sugar for repo operations upon records by @MarshalX in #266

Full Changelog: v0.0.39...v0.0.40

v0.0.39

02 Feb 14:35
d006fe9
Compare
Choose a tag to compare

What's Changed

⚠️ Using strong references in .like() and .repost() methods are deprecated. Use URI and CID arguments instead.

  • Use .like() and .repost() methods without strong reference by @MarshalX in #255
  • Allow Service URl as base URL by @MarshalX in #256
  • Improve URL detection in auto_hyperlinks example by @editor-syntax in #250
  • Simplify send_embed example by @MarshalX in #258
  • Update lexicons fetched from f023494 committed 2024-01-30T22:19:36Z by @MarshalX in #259
  • Delete release workflow by @MarshalX in #252
  • Add docs codegen check to GitHub Actions Workflow by @MarshalX in #260

New Contributors

  • @editor-syntax made their first contribution in #250

Full Changelog: v0.0.38...v0.0.39

v0.0.38

26 Jan 22:10
73af45d
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.0.37...v0.0.38

v0.0.37

12 Jan 20:16
8fbca91
Compare
Choose a tag to compare

What's Changed

🎉 Welcome in 2024! User-specific custom feeds are here! This is a massive update with a lot of new implementations including Service JWT, signature validation, DID Keys, AtProtoData, and more! Huge docs restructuring is here too: https://atproto.blue

Code snippet: Authorized Custom Feed (user-specific results)

SDK:

Docs:

Full Changelog: v0.0.36...v0.0.37

v0.0.36

23 Dec 15:35
2b617c3
Compare
Choose a tag to compare

What's Changed

The AT Protocol Identity package has been implemented! It allows the resolution of DIDs and Handles using various techniques like DNS, HTTP, and PLC directory. Abstract and in-memory caching has been brought too. And as always, it provides both sync and async interfaces. Check the docs below!

🌐 Identity resolvers for DID and Handle

Code snippet:

from atproto import IdResolver  # for async use AsyncIdResolver

resolver = IdResolver()
did = resolver.handle.resolve('test.marshal.dev')
did_doc = resolver.did.resolve(did)

print(did)
print(did_doc)

Code snippet with cache:

from atproto import DidInMemoryCache, IdResolver  # for async AsyncDidInMemoryCache and AsyncIdResolver

cache = DidInMemoryCache()
resolver = IdResolver(cache=cache)
did_doc = resolver.did.resolve('did:web:feed.atproto.blue')

# Now did_document is cached and could be retrieved without network request
did_doc = resolver.did.resolve('did:web:feed.atproto.blue')

# Clear cache
cache.clear()

# Now did_document is not cached and will be retrieved with network request
did_doc = resolver.did.resolve('did:web:feed.atproto.blue')

Full Changelog: v0.0.35...v0.0.36

v0.0.35

21 Dec 18:57
ba0a47d
Compare
Choose a tag to compare

❗Breaking changes

SDK was split into many packages. This affects imports in your codebase. Read more

What's Changed

Full Changelog: v0.0.34...v0.0.35