← back to Kravet Sheet Sync 2026 04 20
recrawl_worklist.sh
36 lines
#!/usr/bin/env bash
# recrawl_worklist.sh — scoped all_images re-crawl for kravet from the yolo worklist.
#
# Reads the dedup-tagged worklist built 2026-06-10 and runs kravet_image_catalog.py
# only for the SKUs you select. Produces a JSONL of captured image rows; LOADING
# that JSONL into dw_unified.kravet_sku_images and backfilling kravet_catalog.all_images
# are SEPARATE, GATED prod writes (see pending-approval/kravet-recrawl.md).
#
# Usage:
# ./recrawl_worklist.sh netnet # crawl ONLY the 3 genuinely net-net-new SKUs (default)
# ./recrawl_worklist.sh all # crawl ALL 5576 net-new-missing SKUs (heavy)
# ./recrawl_worklist.sh <SKU...> # crawl explicit SKUs
#
# This script ONLY runs the crawl (network read + local JSONL write). It does NOT
# write to any database.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
WORKLIST="$HOME/.claude/yolo-queue/output/kravet-recrawl-worklist.tsv"
MODE="${1:-netnet}"; shift || true
case "$MODE" in
netnet) SKUS=$(awk -F'\t' 'NR>1 && $5=="NET_NET_NEW"{print $2}' "$WORKLIST") ;;
all) SKUS=$(awk -F'\t' 'NR>1{print $2}' "$WORKLIST") ;;
*) SKUS="$MODE $*" ;;
esac
N=$(printf '%s\n' $SKUS | grep -c . || true)
echo "[recrawl] mode=$MODE skus=$N"
[ "$N" -eq 0 ] && { echo "nothing to crawl"; exit 0; }
OUT="$HERE/kravet_recrawl_$(date +%Y%m%d_%H%M%S).jsonl"
python3 "$HERE/kravet_image_catalog.py" --test-skus $SKUS --output "$OUT" --threads 8
echo "[recrawl] wrote $OUT"
echo "[recrawl] NEXT (gated): load JSONL -> kravet_sku_images, then run backfill_all_images_from_sku_images.sql"