#!/bin/zsh

set -euo pipefail

readonly PODCASTS_DIR="/Users/soren/Podcasts"
readonly STATUS_FILE="$PODCASTS_DIR/sync-status.json"
readonly STATUS_TMP="$PODCASTS_DIR/.sync-status.json.tmp"

write_status() {
  local sync_state="$1"
  local sync_code="$2"
  local completed_at
  completed_at="$(/bin/date -u +"%Y-%m-%dT%H:%M:%SZ")"
  /usr/bin/printf '{"status":"%s","completed_at":"%s","exit_code":%d}\n' "$sync_state" "$completed_at" "$sync_code" > "$STATUS_TMP"
  /bin/mv "$STATUS_TMP" "$STATUS_FILE"
}

on_exit() {
  local sync_code="$?"
  if (( sync_code != 0 )); then
    write_status "failed" "$sync_code"
  fi
}
trap on_exit EXIT

/usr/bin/python3 "$PODCASTS_DIR/recommendations.py" import-rss \
  "https://feeds.async.com/b1be3cb3-ed1d-4c95-95ba-40eb2700958c.rss" \
  --match "David Bentley Hart" --since 2026-01-01
/usr/bin/python3 "$PODCASTS_DIR/recommendations.py" import-rss \
  "https://feeds.megaphone.fm/soulboom" \
  --match "David Bentley Hart" --since 2026-01-01
/usr/bin/python3 "$PODCASTS_DIR/recommendations.py" import-rss \
  "https://anchor.fm/s/10838e1a0/podcast/rss" \
  --match "Anthony Messeh|Anthony Messah" --since 2026-01-01

/usr/bin/python3 "$PODCASTS_DIR/discoveries.py" rebuild
/usr/bin/xmllint --noout "$PODCASTS_DIR/recommendations.xml"
/usr/bin/xmllint --noout "$PODCASTS_DIR/discoveries.xml"
/bin/launchctl print "gui/$(/usr/bin/id -u)/com.soren.podsync" | /usr/bin/grep -q "state = running"

write_status "ok" 0
trap - EXIT
