Posts a random adoptable pet from the Boston MSPCA to different social media feeds.
It should be easily extendable to other shelters and social media feeds for various locations.
This Project runs on github actions and runs periodically.
Required:
CUTEPETSBOSTON_RESCUEGROUPS_API_KEY
Optional for Instagram posting:
INSTAGRAM_HANDLEINSTAGRAM_PASSWORD
Optional for Bluesky posting:
BLUESKY_HANDLE(orBLUESKY_TEST_HANDLE)BLUESKY_PASSWORD(orBLUESKY_TEST_PASSWORD)
Optional for Mastodon posting:
MASTODON_TOKENorMASTODON_TEST_TOKENMASTODON_API_BASE_URL(defaults tohttps://mastodon.social)
Optional platform selection:
POSTER_PLATFORMSto limit posting to specific platforms, for examplemastodonorbluesky,mastodon
main.py: orchestrates fetching pets and publishing posts.abstractions.py: shared interfaces and data models.source_*.py: pet source implementations (ingest from APIs).poster_*.py: social media poster implementations.manually_test_post.py: CLI for manual posting with sample data.
python main.py
To run only the Mastodon poster locally or in GitHub Actions:
POSTER_PLATFORMS=mastodon python main.py
This project was originally started by Becky Boone and Drew during their fellowship at Code for America in 2014.
- CutePetsDenver