Files

37 lines
1016 B
Bash
Raw Permalink Normal View History

2024-07-24 21:17:36 -05:00
#!/bin/bash
2024-07-25 22:34:35 -05:00
set -e
2024-08-01 20:04:58 -05:00
set -o pipefail
2024-07-25 22:34:35 -05:00
2024-07-26 19:14:39 -05:00
while getopts 'd:t:' opt
2024-07-25 22:27:25 -05:00
do
case $opt in
2024-07-26 19:14:39 -05:00
d)
db=$OPTARG
;;
2024-07-25 22:27:25 -05:00
?)
exit 1
;;
esac
done
2024-07-26 19:14:39 -05:00
if [[ -z $db ]]
2024-07-24 21:17:36 -05:00
then
2024-07-26 19:14:39 -05:00
echo "$0:" '-d is required' >&2
2024-07-24 21:17:36 -05:00
exit 1
fi
2024-08-03 15:54:35 -05:00
# grab the game pk of a single live game, if multiple (in case of spring
# training)
2024-08-08 22:17:11 -05:00
gamePk=$(sqlite3 $db "select json ->> 'gamePk' from games where json ->> 'status' ->> 'detailedState' in ('In Progress', 'Game Over') limit 1")
2024-08-03 15:54:35 -05:00
if [[ -z "$gamePk" ]]
2024-07-25 22:48:57 -05:00
then
2024-07-30 21:36:11 -05:00
echo "$0:" 'no live games found' >&2
2024-07-25 22:48:57 -05:00
exit 1
fi
2024-07-31 21:39:11 -05:00
# grab select data from response with jq, add 0 to the end of each line (to go
# in the 'posted' db column), then write each line to db
2024-08-01 20:42:12 -05:00
jqFilter='.highlights.highlights.items | map(select(.keywordsAll[].value == "highlight"))[] | {headline, id} + {url: (.playbacks | map(select(.name == "mp4Avc"))[0].url)} | select(.url | startswith("https://mlb-cuts-diamond"))'
2025-05-11 19:55:01 -04:00
mlbstats content -g $gamePk | jq -Sc "$jqFilter" | sed 's/$/0/' | sqlite3 $db '.mode ascii' '.separator  \n' '.import /dev/stdin highlights'