Files
bsky-firehose/README.md

67 lines
2.4 KiB
Markdown
Raw Normal View History

2025-02-22 16:50:17 -08:00
# Grand Aim
A semantically colored feed of bluesky skeets, for your perspective, someone else's or another group's.
## Intermediate goals so far
2025-02-22 17:01:07 -08:00
- [x] Visualize bluesky data.
- [x] Read from jetstream
- [x] Extract interesting fields
- [x] Filter by commit/post type. Learning bsky data model just enough, filter also by keywords. Count limit.
2025-02-22 17:01:07 -08:00
- [x] Get color selection ergonomic for further development, 24-bit? 32-bit? color, the alpha paramter of colorama is quite useful
- [x] colorspace, hsla / hsl
- [x] Vary colors, find balance so nothing draws excessive attention, but noticeable, though gradual, color evolution occurs
And, for ergonomic use to communicate meaning. Color for cluster / direction. Brightness, inverse to length, for ease of reading, uniformity of gestalt. Saturation for content searching versus scaffolding metadata. Errors in grey too.
- [x] Port to Rust for better performance and native compilation
2025-02-22 17:01:07 -08:00
- [ ] Get semantic clustering working -- static color. Faiss? enough? Word2Vec? Queries?
2025-02-22 16:50:17 -08:00
- [ ] Get sematic selection & filtering working, based on keywords, chosen posts
- [ ] Get db/profiles/queries/modes set up -- so every taste selection input can inform any future use
- [ ] Get a streaming web view working -- possibly even fully in-browser
2025-02-22 17:01:07 -08:00
- fallen? [twitterfall](https://twitterfall.com) inspiration. [hatnote's L2W](https://l2w.hatnote.com)
2025-02-22 16:50:17 -08:00
# Run it
## Rust version (recommended)
```bash
# Build and run
cargo run
# With options
cargo run -- --count 10 --filters "+love,-hate" --cfilters "+create"
# Install and run
cargo install --path .
bsky-firehose-term --help
2025-02-22 16:50:17 -08:00
```
## Python version
```bash
2025-02-22 16:50:17 -08:00
uv run --with websockets,colorama,munch,fire python3 bluesky-simple-print.py
```
2025-02-22 17:02:44 -08:00
## Command-line options
Both versions support the same filtering options:
- `--skips`: Skip certain types (comma-separated)
- `--only`: Only show certain types (comma-separated)
- `--cfilters`: Commit type filters (+include,-skip format)
- `--filters`: Text filters (+include,-skip format)
- `--count`: Stop after N posts
Examples:
```bash
# Show only posts containing "rust" or "programming"
cargo run -- --filters "+rust,+programming"
# Skip posts containing "spam"
cargo run -- --filters "-spam"
# Show only commit types containing "create"
cargo run -- --cfilters "+create"
# Show only 5 posts
cargo run -- --count 5
```
2025-02-22 17:02:44 -08:00
# What it looks like
![firehose screenshot](/res/Screenshot_20250222_162327.png)
2025-02-23 15:47:03 -08:00
![firehose asciinema](/res/ascii-1.gif)