All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Two small follow-ups from the session: - kevin-analyze.sh: always cp the local analyze_kevin_video.py into the pod before exec, so the wrapper works even before CI ships an image with scripts/ baked in (saw this hit the user with ModuleNotFoundError on stale images). - reanalyze_kevin_videos.py: switch from DELETE+INSERT to append-only. The old behaviour violated the FK constraint on kevin_signal_bridge_state.mention_id; the new behaviour adds a fresh v2 analysis alongside the v1 row and lets the API surface the latest. Old v1 rows preserved for audit.
41 lines
1.2 KiB
Bash
Executable file
41 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Ad-hoc Meet Kevin video analyzer wrapper.
|
|
#
|
|
# Usage:
|
|
# ./scripts/kevin-analyze.sh <video-id-or-url>
|
|
#
|
|
# Picks the running meet-kevin-watcher container (which already has
|
|
# yt-dlp + ffmpeg + the Anthropic token + the right Python env), copies
|
|
# the local script in, and runs it. Works regardless of whether the
|
|
# image has scripts/ baked in yet.
|
|
|
|
set -euo pipefail
|
|
|
|
if [[ $# -ne 1 ]]; then
|
|
echo "usage: $0 <youtube-video-id-or-url>" >&2
|
|
exit 1
|
|
fi
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
LOCAL_SCRIPT="$SCRIPT_DIR/analyze_kevin_video.py"
|
|
|
|
if [[ ! -f "$LOCAL_SCRIPT" ]]; then
|
|
echo "missing $LOCAL_SCRIPT" >&2
|
|
exit 1
|
|
fi
|
|
|
|
POD=$(kubectl -n trading-bot get pod -l app=trading-bot-workers \
|
|
-o jsonpath='{.items[0].metadata.name}')
|
|
|
|
if [[ -z "$POD" ]]; then
|
|
echo "no trading-bot-workers pod found" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Copy the latest local script into the pod, then exec it. This way the
|
|
# wrapper works even before CI ships an image with scripts/ baked in.
|
|
kubectl -n trading-bot cp "$LOCAL_SCRIPT" \
|
|
"$POD:/tmp/kevin-analyze.py" -c meet-kevin-watcher >/dev/null
|
|
|
|
exec kubectl -n trading-bot exec "$POD" -c meet-kevin-watcher -- \
|
|
python /tmp/kevin-analyze.py "$1"
|