No project description provided
Project description
BlueSky API Data Wrapper
This is built as a wrapper for the atproto package. While that package is fantastic, it can be a bit tricky to navigate. This package will hopefully give a productive user experience.
Installation
pip install bskydata
Example usage
import os
from dotenv import load_dotenv
from bskydata.api.client import BskyApiClient
from bskytdata.agents.agent import BskyAgent
from bskydata.scrapers.search_terms import SearchTermScraper
from bskydata.scrapers.profiles import ProfileScraper
from bskydata.storage.writers import JsonFileWriter
load_dotenv()
BSKY_USERNAME = os.getenv('BSKY_USERNAME')
BSKY_PASSWORD = os.getenv('BSKY_PASSWORD')
# Create a client -- reuse this across your code rather than instantiating a new one each time
# If you run this frequently, you will be rate limited
client = BskyApiClient(username = BSKY_USERNAME, password = BSKY_PASSWORD)
# Scrape all posts for the search term "rstats"
st_scraper = SearchTermScraper(client)
rstats_posts = st_scraper.fetch_all_posts("rstats", limit=200)
# Scrape user: follows, followers, profiles
pf_scraper = ProfileScraper(client)
profiles = pf_scraper.fetch_all_profiles(["stoltzmaniac.bsky.social", "bsky.app"])
profile_follows = pf_scraper.fetch_all_follows("stoltzmaniac.bsky.social", limit=200)
profile_followers = pf_scraper.fetch_all_followers("stoltzmaniac.bsky.social", limit=200)
# Add output files -- you can specify different file names within each method if you prefer not to use the defaults
json_writer = JsonFileWriter()
scraper = SearchTermScraper(client, writer=json_writer)
data = scraper.fetch_all_posts("rstats", limit=200)
pf_scraper = ProfileScraper(client, writer=json_writer)
profiles = pf_scraper.fetch_all_profiles(["stoltzmaniac.bsky.social", "bsky.app"])
profile_follows = pf_scraper.fetch_all_follows("stoltzmaniac.bsky.social", limit=200)
profile_followers = pf_scraper.fetch_all_followers("stoltzmaniac.bsky.social", limit=200)
# Making a post
agent = BskyAgent(client)
agent.new_post()\
.add_text("Python API (sorry for multiple)--text--")\
.add_link("Bluesky", "https://bsky.app")\
.add_image("https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Cute_dog.jpg/1600px-Cute_dog.jpg", "dog")\
.add_image("cat.png", "cat")\
.add_mention("@stoltzmaniac.bsky.social", 'did:plc:6p3e4iybr5ipik3c6tx3jpto')\
.send_post()
# If you don't know the "did" ... which most people don't, it will look it up for you
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bskydata-0.3.4.tar.gz
(9.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
bskydata-0.3.4-py3-none-any.whl
(11.1 kB
view details)
File details
Details for the file bskydata-0.3.4.tar.gz.
File metadata
- Download URL: bskydata-0.3.4.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.5 CPython/3.13.1 Darwin/23.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a3706a005a3507e5afe5ac534896cddf229048fff5a80ecef0a3a51d92bef38
|
|
| MD5 |
dcf739117ffc0d79873a61619128d688
|
|
| BLAKE2b-256 |
8904fcbbfb9f625653cba884f0e72ba1ba2cefdd254ebf0b2df2d3d620f57418
|
File details
Details for the file bskydata-0.3.4-py3-none-any.whl.
File metadata
- Download URL: bskydata-0.3.4-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.5 CPython/3.13.1 Darwin/23.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18b1e4c8c2c24552b8df144d4b6b1a8240861c8ea9c93b4d0de6407faa914f1a
|
|
| MD5 |
8afffd5a06e79cc1c404231f8a8f6917
|
|
| BLAKE2b-256 |
40388c1735388cacc9b8f6917e130e760beaf105cc2ac935bc9c3b4546a9158d
|