GET /xrpc/app.bsky.actor.searchActorsTypeahead
typeahead.waow.tech
1set dotenv-filename := ".dev.vars"
2
3# deploy worker to cloudflare
4deploy:
5 npx wrangler deploy
6
7# cleanup dead actors in batches with pauses between
8cleanup batch_size="500" batches="10" pause="30":
9 #!/usr/bin/env bash
10 set -euo pipefail
11 total_deleted=0
12 total_updated=0
13 total_checked=0
14 last_rowid=0
15 for i in $(seq 1 {{batches}}); do
16 echo "=== batch $i/{{batches}} (size={{batch_size}}, starting at rowid $last_rowid) ==="
17 output=$(./scripts/cleanup-dead-actors.py --limit {{batch_size}} --start-rowid "$last_rowid" 2>&1)
18 echo "$output"
19 # extract last rowid from output
20 new_rowid=$(echo "$output" | grep -o 'rowid=[0-9]*' | tail -1 | cut -d= -f2)
21 if [ -n "$new_rowid" ]; then
22 last_rowid=$new_rowid
23 fi
24 # extract stats from final line
25 last=$(echo "$output" | tail -1)
26 d=$(echo "$last" | sed -n 's/.*deleted=\([0-9,]*\).*/\1/p' | tr -d ,)
27 u=$(echo "$last" | sed -n 's/.*updated=\([0-9,]*\).*/\1/p' | tr -d ,)
28 c=$(echo "$last" | sed -n 's/.*checked=\([0-9,]*\).*/\1/p' | tr -d ,)
29 total_deleted=$((total_deleted + ${d:-0}))
30 total_updated=$((total_updated + ${u:-0}))
31 total_checked=$((total_checked + ${c:-0}))
32 if [ "$i" -lt "{{batches}}" ]; then
33 echo "--- pausing {{pause}}s before next batch ---"
34 sleep {{pause}}
35 fi
36 done
37 echo ""
38 echo "=== done: checked=$total_checked deleted=$total_deleted updated=$total_updated ==="
39
40# dry-run cleanup (no writes)
41cleanup-dry batch_size="500":
42 ./scripts/cleanup-dead-actors.py --dry-run --limit {{batch_size}}