Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
Markdown
Painting Sharing Tools #
Automated tools for sharing aesthetic.computer paintings to Bluesky with proper attribution and image embedding.
Tools #
1. share-latest-painting.mjs #
Share a specific user's latest painting to Bluesky.
Usage:
# Preview the painting first (saves to preview-painting.png)
node share-latest-painting.mjs @jeffrey --preview
# Post to Bluesky with default message
node share-latest-painting.mjs @jeffrey
# Post with custom message
node share-latest-painting.mjs @jeffrey --message "Amazing artwork! 🎨"
Features:
- ✅ Fetches latest painting from user's gallery
- ✅ Downloads and uploads image as Bluesky blob
- ✅ Includes proper AC URL:
https://prompt.ac/@handle/painting/{slug} - ✅ Preview mode for testing
- ✅ Custom message support
2. bulk-share-paintings.mjs #
Bulk share multiple paintings from the TV feed to Bluesky.
Usage:
# Post 10 paintings with default 2s delay
node bulk-share-paintings.mjs 10
# Post 20 paintings with 3s delay between each
node bulk-share-paintings.mjs 20 --delay 3000
# Post 5 paintings quickly (1s delay)
node bulk-share-paintings.mjs 5 --delay 1000
Features:
- ✅ Posts multiple paintings in one run
- ✅ Configurable delay between posts
- ✅ Full summary report (success/failure counts)
- ✅ Proper error handling
- ✅ Reusable login session
Post Format #
All posts follow this format:
New painting by @{handle} 🎨✨
https://prompt.ac/@{handle}/painting/{slug}
[embedded image]
Example Output #
$ node bulk-share-paintings.mjs 10
🚀 Bulk Share Paintings to Bluesky
Count: 10
Delay: 2000ms between posts
🔐 Logging in as @aesthetic.computer...
✅ Logged in successfully
📡 Fetching 20 paintings from TV feed...
✅ Found 20 paintings with handles
[1/10] 🎨 Posting painting by @fifi
Slug: 2025.10.09.09.51.18.882
URL: https://prompt.ac/@fifi/painting/2025.10.09.09.51.18.882
✅ Downloaded 29692 bytes
✅ Uploaded to Bluesky
✅ Posted! https://bsky.app/profile/aesthetic.computer/post/3m2rrdqdk722z
⏳ Waiting 2000ms...
...
✨ Summary
✅ Successful: 10
❌ Failed: 0
📊 Total: 10
🔗 Posted paintings:
1. @fifi - https://bsky.app/profile/aesthetic.computer/post/3m2rrdqdk722z
2. @mangoghoul - https://bsky.app/profile/aesthetic.computer/post/3m2rrdsz2bb2u
...
Configuration #
Uses credentials from .env:
BSKY_SERVICE=https://bsky.social
BSKY_IDENTIFIER=aesthetic.computer
BSKY_APP_PASSWORD=your-app-password
API Integration #
Data Flow #
- Fetch → Query AC's TV API or media-collection API
- Download → Fetch PNG from aesthetic.computer CDN
- Upload → Upload as blob to Bluesky PDS
- Post → Create post with embedded image and AC URL
TV API #
GET https://aesthetic.computer/api/tv?limit=500
Returns recent paintings with metadata:
- Owner handle and user ID
- Painting slug and timestamp
- Media URL
Media Collection API #
GET https://aesthetic.computer/media-collection?for={handle}/painting
Returns all paintings for a specific user.
Test Results #
Date: October 9, 2025
Test: Bulk posted 10 paintings
Results:
- ✅ 10/10 successful
- ⏱️ ~20 seconds total (2s delay between)
- 🎨 Paintings from @fifi and @mangoghoul
- 📊 Total data uploaded: ~380KB
Sample Posts:
- https://bsky.app/profile/aesthetic.computer/post/3m2rrdqdk722z
- https://bsky.app/profile/aesthetic.computer/post/3m2rrdsz2bb2u
- https://bsky.app/profile/aesthetic.computer/post/3m2rrdwhwvh2l
Future Enhancements #
Notes #
- Images are stored in Bluesky as blobs (permanent storage)
- Original paintings remain on AC's CDN
- Posts include clickable AC URLs for traffic back to platform
- Rate limiting: 2-3 second delay recommended between posts
- Bluesky has a 300 character limit for post text
- Image alt text is auto-generated with handle attribution