Skip to content

Instantly share code, notes, and snippets.

@jameswhite
Last active July 24, 2017 13:47
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save jameswhite/72b0c1b29fd6fc03a9584c0811ff7183 to your computer and use it in GitHub Desktop.
#!/bin/bash
# date should be yyyymmdd
ARGS="$*"
export TARGET=$(date -jf "%Y%m%d" ${ARGS} +"%m/%d/%Y")
export TICKET_DATE=$(date -jf "%Y%m%d" ${ARGS} +"%a %b%d %g")
# cache every day
[ ! -f /var/tmp/pb ] || [ $(find /var/tmp/pb -mmin +3600) ] && curl -sk http://www.powerball.com/powerball/winnums-text.txt > /var/tmp/pb
[ ! -f /var/tmp/hl ] || [ $(find /var/tmp/hl -mmin +3600) ] && curl -sk http://www.powerball.com/hotlotto/winnums-text.txt > /var/tmp/hl
[ ! -f /var/tmp/mm ] || [ $(find /var/tmp/mm -mmin +3600) ] && \
curl -sk https://data.ny.gov/api/views/5xaw-6ayf/rows.json?accessType=DOWNLOAD | \
jq -c '.data[] | {"date": .[8], "numbers": .[9], "mega": .[10], "multiplier": .[11]}' | \
jq -c -r '[ .date, .numbers, .mega, .multiplier ]' | \
sed -e 's/\[//g' -e 's/[,"]/ /g' -e 's/\]//g' -e 's/^ //g'| \
tr -s '[:space:]' | \
while read date num[0] num[1] num[2] num[3] num[4] megaball multiplier; do
[ "${multiplier}" == "null" ] && multiplier="01"
NEW_DATE=$(echo $date|sed -e 's/T.*//')
FILE_DATE=$(date -jf "%Y-%m-%d" ${NEW_DATE} +"%m/%d/%Y")
echo "${FILE_DATE} $(echo "${num[@]}"| tr " " "\n" | sort -n | tr "\n" " ")$megaball $multiplier";
done > /var/tmp/mm
speech(){
results="$*"
echo "${results}" | while read day monthday year lbracket wb1 wb2 wb3 wb4 wb5 rbacket ball; do
say "$day $monthday $year";
sleep 1
say "$wb1" ; sleep 1
say "$wb2" ; sleep 1
say "$wb3" ; sleep 1
say "$wb4" ; sleep 1
say "$wb5" ; sleep 1
say "ball $ball"
done
}
case $(basename $0) in
"powerball"|"pb")
RESULTS=$(grep "${TARGET}" /var/tmp/pb | sed -e 's/
//g' | while read date num[0] num[1] num[2] num[3] num[4] powerball powerplay; do echo "${TICKET_DATE} [ $(echo "${num[@]}"| tr " " "\n" | sort -n | tr "\n" " ")] [ $powerball ]"; done)
if [ ! -z "${RESULTS}" ]; then
echo "${RESULTS}"
[ "$(uname -s)" == "Darwin" ] && speech "${RESULTS}"
else
echo "No powerball results found for ${TICKET_DATE}"
fi
;;
"megamillions"|"mm")
RESULTS=$(grep "${TARGET}" /var/tmp/mm | sed -e 's/
//g' | while read date num[0] num[1] num[2] num[3] num[4] megaball multiplier; do echo "${TICKET_DATE} [ $(echo "${num[@]}"| tr " " "\n" | sort -n | tr "\n" " ")] [ $megaball ]"; done)
if [ ! -z "${RESULTS}" ]; then
echo "${RESULTS}"
[ "$(uname -s)" == "Darwin" ] && speech "${RESULTS}"
else
echo "No mega-millions results found for ${TICKET_DATE}"
fi
;;
"hotlotto"|"hl")
RESULTS=$(grep "${TARGET}" /var/tmp/hl | sed -e 's/
//g' | while read date num[0] num[1] num[2] num[3] num[4] hotball multiplier; do echo "${TICKET_DATE} [ $(echo "${num[@]}"| tr " " "\n" | sort -n | tr "\n" " ")] [ $hotball ]"; done)
if [ ! -z "${RESULTS}" ]; then
echo "${RESULTS}"
[ "$(uname -s)" == "Darwin" ] && speech "${RESULTS}"
else
echo "No hot-lotto results found for ${TICKET_DATE}"
fi
;;
*)
for file in pb mm hl; do
grep "${TARGET}" /var/tmp/${file} | sed -e 's/
//g' | while read date num[0] num[1] num[2] num[3] num[4] ball multiplier; do echo "${file} => ${TICKET_DATE} [ $(echo "${num[@]}"| tr " " "\n" | sort -n | tr "\n" " ")] [ $ball ]"; done
done
;;
esac
@jameswhite
Copy link
Author

jameswhite commented Jul 23, 2017

pb-loop

#!/bin/bash
i=1
NEXT_DATE="$*"
NEXT_DATE=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
clear
# echo "${NEXT_DATE} ${DAYOFWEEK}"
pb ${NEXT_DATE}

while read trash; do
i=$(expr $i + 1)
  NEXT_DATE=$(date -j -v +1d -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
  DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
  echo ${DAYOFWEEK} | egrep -q "(Wed|Sat)"
  EXIT=$?
  while [ "$EXIT" != "0" ]; do
    i=$(expr $i + 1)
    NEXT_DATE=$(date -j -v +1d -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
    DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
    echo ${DAYOFWEEK} | egrep -q "(Wed|Sat)"
    EXIT=$?
  done
  clear
  # echo "${NEXT_DATE} ${DAYOFWEEK}"
  pb ${NEXT_DATE}
done

@jameswhite
Copy link
Author

mm-loop

#!/bin/bash
i=1
NEXT_DATE="$*"
NEXT_DATE=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
clear
# echo "${NEXT_DATE} ${DAYOFWEEK}"
mm ${NEXT_DATE}

while read trash; do
i=$(expr $i + 1)
  NEXT_DATE=$(date -j -v +1d -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
  DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
  echo ${DAYOFWEEK} | egrep -q "(Tue|Fri)"
  EXIT=$?
  while [ "$EXIT" != "0" ]; do
    i=$(expr $i + 1)
    NEXT_DATE=$(date -j -v +1d -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
    DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
    echo ${DAYOFWEEK} | egrep -q "(Tue|Fri)"
    EXIT=$?
  done
  clear
  # echo "${NEXT_DATE} ${DAYOFWEEK}"
  mm ${NEXT_DATE}
done

@jameswhite
Copy link
Author

hl-loop

#!/bin/bash
i=1
NEXT_DATE="$*"
NEXT_DATE=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
clear
# echo "${NEXT_DATE} ${DAYOFWEEK}"
hl ${NEXT_DATE}

while read trash; do
i=$(expr $i + 1)
  NEXT_DATE=$(date -j -v +1d -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
  DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
  echo ${DAYOFWEEK} | egrep -q "(Wed|Sat)"
  EXIT=$?
  while [ "$EXIT" != "0" ]; do
    i=$(expr $i + 1)
    NEXT_DATE=$(date -j -v +1d -f "%Y%m%d" "${NEXT_DATE}" +%Y%m%d)
    DAYOFWEEK=$(date -j -f "%Y%m%d" "${NEXT_DATE}" +%a)
    echo ${DAYOFWEEK} | egrep -q "(Wed|Sat)"
    EXIT=$?
  done
  clear
  # echo "${NEXT_DATE} ${DAYOFWEEK}"
  hl ${NEXT_DATE}
done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment