semantic bufo search find-bufo.com
bufo
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

add bot readme and update config examples

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

zzstoatzz 153a141d 72f44442

+62 -2
+3 -1
bot/.env.example
··· 1 - BSKY_HANDLE=findbufo.bsky.social 1 + BSKY_HANDLE=find-bufo.com 2 2 BSKY_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx 3 + MIN_PHRASE_WORDS=4 4 + POSTING_ENABLED=false
+57
bot/README.md
··· 1 + # bufo-bot 2 + 3 + bluesky bot that listens to the firehose and quote-posts matching bufo images. 4 + 5 + ## how it works 6 + 7 + 1. connects to bluesky jetstream (firehose) 8 + 2. for each post, checks if text contains an exact phrase matching a bufo name 9 + 3. if matched, quote-posts with the corresponding bufo image 10 + 11 + ## matching logic 12 + 13 + - extracts phrase from bufo filename (e.g., `bufo-hop-in-we-re-going` -> `hop in we re going`) 14 + - requires exact consecutive word match in post text 15 + - configurable minimum phrase length (default: 4 words) 16 + 17 + ## configuration 18 + 19 + | env var | default | description | 20 + |---------|---------|-------------| 21 + | `BSKY_HANDLE` | required | bluesky handle (e.g., `find-bufo.com`) | 22 + | `BSKY_APP_PASSWORD` | required | app password from bsky settings | 23 + | `MIN_PHRASE_WORDS` | `4` | minimum words in phrase to match | 24 + | `POSTING_ENABLED` | `false` | must be `true` to actually post | 25 + | `JETSTREAM_ENDPOINT` | `jetstream2.us-east.bsky.network` | jetstream server | 26 + 27 + ## local dev 28 + 29 + ```bash 30 + # copy and edit .env 31 + cp .env.example .env 32 + 33 + # run locally (dry run by default) 34 + uv run bufo-bot 35 + 36 + # or test matching against firehose 37 + uv run python -m bufo_bot.dry_run 38 + ``` 39 + 40 + ## deploy 41 + 42 + ```bash 43 + # set secrets (once) 44 + fly secrets set BSKY_HANDLE=find-bufo.com BSKY_APP_PASSWORD=xxxx -a bufo-bot 45 + 46 + # deploy 47 + fly deploy 48 + 49 + # enable posting 50 + fly secrets set POSTING_ENABLED=true -a bufo-bot 51 + 52 + # disable posting 53 + fly secrets set POSTING_ENABLED=false -a bufo-bot 54 + 55 + # check logs 56 + fly logs -a bufo-bot 57 + ```
+2 -1
bot/fly.toml
··· 18 18 cpus = 1 19 19 20 20 # secrets to set via: fly secrets set KEY=value -a bufo-bot 21 - # - BSKY_HANDLE (e.g., findbufo.bsky.social) 21 + # - BSKY_HANDLE (e.g., find-bufo.com) 22 22 # - BSKY_APP_PASSWORD (app password from bsky settings) 23 + # - POSTING_ENABLED=true (to enable posting, default is false)