pots-shutdown-tracker / scripts /check-review-queue.sh
github-actions
Deploy e9638c4ddc3ed29a18779b38f43922aa3139b311
611bfd9
#!/usr/bin/env bash
set -euo pipefail
BASE_URL="${1:-https://crazycrazypete-pots-shutdown-tracker.hf.space}"
PYTHON_BIN="${PYTHON_BIN:-python3}"
REQUIRE_EMPTY="${REQUIRE_EMPTY:-false}"
if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
echo "Python interpreter not found: $PYTHON_BIN"
exit 1
fi
"$PYTHON_BIN" - "$BASE_URL" "$REQUIRE_EMPTY" <<'PY'
import collections
import sys
import requests
base_url = sys.argv[1].rstrip("/")
require_empty = sys.argv[2].lower() == "true"
dashboard_url = f"{base_url}/api/pots-shutdown/dashboard"
queue_url = f"{base_url}/api/pots-shutdown/admin/review-queue"
dashboard = requests.get(dashboard_url, timeout=30)
dashboard.raise_for_status()
dashboard_payload = dashboard.json()
queue = requests.get(queue_url, timeout=30)
queue.raise_for_status()
items = queue.json()
print(f"Review queue check: {queue_url}")
print(f"Dashboard review_queue_count={dashboard_payload.get('review_queue_count')}")
print(f"Admin review queue items={len(items)}")
source_counts = collections.Counter(item.get("source_code", "unknown") for item in items)
issue_counts = collections.Counter()
for item in items:
for issue in item.get("issues", []):
issue_counts[issue] += 1
if source_counts:
print()
print("By source:")
for source_code, count in sorted(source_counts.items()):
print(f"- {source_code}: {count}")
if issue_counts:
print()
print("By issue:")
for issue, count in sorted(issue_counts.items()):
print(f"- {issue}: {count}")
if items:
print()
print("Items:")
for item in items:
print(
f"- {item.get('id')} {item.get('source_code')} "
f"confidence={item.get('parse_confidence')} issues={item.get('issues')}"
)
else:
print()
print("Review queue is empty.")
if require_empty and items:
raise SystemExit("Review queue is not empty.")
PY