#!/bin/bash # MarkBaseFS Frame Data Query Script # Provides easy command-line access to Frame Index Table # # Usage: ./frame_data_query.sh [command] # # Commands: # count - Count total frames # list - List first 50 frames # search - Search frames by filename # video - List all video IDs # stats - Show database statistics DB_PATH="/Users/accusys/Library/Application Support/MarkBaseFS/MarkBaseFS.sqlite" case "$1" in count) echo "=== Frame Count ===" sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM frame_records;" ;; list) echo "=== Frame List (first 50) ===" sqlite3 -header -column "$DB_PATH" "SELECT frame_id, video_id, frame_file, frame_index FROM frame_records LIMIT 50;" ;; search) echo "=== Search Frames ===" if [ -z "$2" ]; then echo "Usage: $0 search " echo "Example: $0 search %.docx" else sqlite3 -header -column "$DB_PATH" "SELECT frame_id, video_id, frame_file FROM frame_records WHERE frame_file LIKE '$2';" fi ;; video) echo "=== Video IDs ===" sqlite3 -header -column "$DB_PATH" "SELECT DISTINCT video_id, COUNT(*) as frame_count FROM frame_records GROUP BY video_id LIMIT 20;" ;; stats) echo "=== Database Statistics ===" echo "Total frames: $(sqlite3 "$DB_PATH" 'SELECT COUNT(*) FROM frame_records;')" echo "Total videos: $(sqlite3 "$DB_PATH" 'SELECT COUNT(DISTINCT video_id) FROM frame_records;')" echo "Database size: $(ls -lh "$DB_PATH" | awk '{print $5}')" ;; *) echo "MarkBaseFS Frame Data Query Script" echo "" echo "Usage: $0 [command]" echo "" echo "Commands:" echo " count - Count total frames" echo " list - List first 50 frames" echo " search - Search frames by filename (e.g., search %.docx)" echo " video - List all video IDs" echo " stats - Show database statistics" ;; esac