Skip to main content

bsky.social client library

Project description

gokyuzu - bluesky python client

Gökyüzü - "sky" in Turkish - is a python client for the bluesky social network.

Install

pip install gokyuzu

Sample Usage

from gokyuzu import Bluesky

bsky = Bluesky("handle.bsky.social", "PASSWORD")
response = bsky.resolveHandle("handle.bsky.social")
print(response.json())

Documentation

List of Implemented API Calls:

com.atproto.admin

  • def disableInviteCodes( codes=None, accounts=None)
  • def getInviteCodes( sort='recent', limit=100, cursor="")
  • def getModerationAction( action_id)
  • def getModerationActions( subject=None, limit=10, cursor="")
  • def getModerationReport( report_id)
  • def getModerationReports( subject=None, resolved=None, limit=10, cursor="")
  • def getRecord( uri=None, cid=None)
  • def getRepo( user_did)
  • def resolveModerationReports( action_id, report_ids, created_by)
  • def reverseModerationAction( action_id, reason, created_by)
  • def searchRepos( query, limit=10, cursor="")
  • def takeModerationAction( action, subject, reason, created_by)
  • def updateAccountEmail( account, email)
  • def updateAccountHandle( new_handle, handle=None, user_did=None)

com.atproto.identity

  • def resolveHandle( handle)
  • def updateHandle( handle)

com.atproto.label

  • def queryLabels( uri_patterns, sources=None, limit=10, cursor="")
  • def subscribeLabels( cursor="", is_stream=True)

com.atproto.repo

  • def applyWrites( repo, writes, validate=True, swapCommit=None)
  • def createRecord( repo, record, collection, record_key=None, validate=True, swapCommit=None)
  • def deleteRecord( repo, record, collection, swapRecord=None, swapCommit=None)
  • def describeRepo( repo)
  • def getRecord( user_did, collection, record_key, commit=None)
  • def listRecords( user_did, collection, limit=10, record_key_start=None, record_key_end=None, reverse=False)
  • def putRecord( repo, collection, record_key, record, validate=True, swapRecord=None, swapCommit=None)
  • def uploadBlob( blob_bytes)
  • def uploadImage( image_path)
  • def followRecord( handle=None, user_did=None)
  • def unfollowRecord( handle=None, user_did=None)

com.atproto.server

  • def createAccount( email, handle, password, inviteCode)
  • def createAppPassword( name)
  • def createInviteCode( useCount, user_did=None)
  • def createInviteCodes( useCount, codeCount=1, user_did=None)
  • def deleteAccount( token, password, handle=None, user_did=None)
  • def describeServer()
  • def deleteSession()
  • def listAppPassword()
  • def getAccountInviteCodes( limit=10, includeUsed=True, create_available=True)
  • def getSession()
  • def requestAccountDelete()
  • def requestPasswordReset( email)
  • def resetPassword( email, password)
  • def refreshSession()

com.atproto.sync

  • def getBlob( repo_did, blob_cid)
  • def getBlocks( did, cids)
  • def getCheckout( did, commit=None)
  • def getCommitPath( did, latest=None, earliest=None)
  • def getHead( did)
  • def getRecord( did, collection, record_key, commit=None)
  • def getRepo( did, earliest=None, latest=None)
  • def listBlobs( did, latest, earliest)
  • def notifyOfUpdate( hostname)
  • def requestCrawl( hostname)
  • def subscribeRepos( cursor)

app.bsky.actor

  • def getProfile( user_did)
  • def getProfiles( user_dids)
  • def getSuggestions( limit=10, cursor="")
  • def searchActors( query, limit=10, cursor="")
  • def searchActorsTypeahead( query, limit=10, cursor="")

app.bsky.feed

  • def getAuthorFeed( handle=None, user_did=None, limit=10, cursor="")
  • def getLikes( post_id, limit=10, cursor="")
  • def getPostThread( post_id, limit=10, cursor="", depth=None)
  • def getRepostedBy( post_id, limit=10, cursor="", post_cid=None)
  • def getTimeline( limit=10, cursor="", algorithm="reverse-chronological")
  • def like( subject_uri, subject_cid, createdAt=None)
  • def unlike( repo, record_key)
  • def repost( subject_uri, subject_cid, createdAt=None)
  • def undo_repost( repo, record_key)

app.bsky.graph

  • def follow( handle=None, user_did=None)
  • def getFollowers( handle=None, user_did=None, limit=10, cursor="")
  • def getFollows( handle=None, user_did=None, limit=10, cursor="")
  • def getMutes( limit=10, cursor="")
  • def muteActor( handle=None, user_did=None)
  • def unmuteActor( handle=None, user_did=None)

app.bsky.notification

  • def getUnreadCount()
  • def listNotifications( limit=10, cursor="")
  • def updateSeen( limit=10, cursor="", seenAt=None)

app.bsky.unspecced

  • def getPopular( limit=10, cursor="")

app.bsky.richText

  • def facet( text)

Search sarch.bsky.social

  • def search( query_type="posts", query="")
  • def search_profiles( query)
  • def search_posts( query)

Other

  • def health()
  • def quote( text, repo, record_uri, record_cid, createdAt=None)
  • def delete_post( repo, record_key)
  • def comment( text, repo, reply_root_uri, reply_root_cid, reply_parent_uri, reply_parent_cid, createdAt=None)

Development

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Running tests

python -m unittest

Publishing to PyPI

# Build for PyPI
python -m build

# Test PyPI
python -m twine upload --repository testpypi dist/*
pip install --index-url https://test.pypi.org/simple/ --no-deps gokyuzu

# PyPI
python -m twine upload dist/*
pip install gokyuzu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gokyuzu-2.0.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gokyuzu-2.0.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file gokyuzu-2.0.1.tar.gz.

File metadata

  • Download URL: gokyuzu-2.0.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for gokyuzu-2.0.1.tar.gz
Algorithm Hash digest
SHA256 318f5455d9dd7f56077dce0184abc20c90226a3fbae440826bf2e2fffd49e73b
MD5 a96e46b155e9060be8013c8f37297f5e
BLAKE2b-256 df64766b62ad7dc900fcf0bf86140f965ce51992bfc013445df21dedfca0ef79

See more details on using hashes here.

File details

Details for the file gokyuzu-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: gokyuzu-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for gokyuzu-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 087bbf4d1bddb8e756de2cf21781c9f8ddc5cd79357fc029704a278cce84ef0f
MD5 7749553b14d6154f4980f0464eeb02cd
BLAKE2b-256 1100f209f50331af2bc01ef0b9cbbd61cb12e9c7d7a563485c69e40fbf4e28b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page