dots-of-war/eggs/scripts/Theatron/pollingservice

36 lines
1.3 KiB
Text
Raw Permalink Normal View History

2024-12-05 21:10:22 +00:00
#!/bin/bash
cd $(dirname "$0")
function poll(){
id=$(curl -H 'Accept: application/vnd.twitchtv.v5+json' \
-H 'Client-ID: fendbm5b5q1c2820m59sbdv9z95vs4' \
-X GET "https://api.twitch.tv/kraken/users?login=$notify_me" | jq -c '.users[] |._id'| tr -d '"' | tr '\n' ',')
live=$(curl -H 'Accept: application/vnd.twitchtv.v5+json' \
-H 'Client-ID: fendbm5b5q1c2820m59sbdv9z95vs4' \
-X GET "https://api.twitch.tv/kraken/streams/?channel=$id" | jq -c '.streams[] | .channel | {"": .name , " playing " : .game , " " : .status}' | tr -d '\{\}\,\"\:' | awk '{print $0"\n"}')
echo "$live"
if [ -z "$live" ]; then
echo "No one is on"
else
notify-send -u critical "Theatron" "$live"
name=$(echo $live | awk '{print $1}')
notify_me="${notify_me//$name}"
echo $notify_me
fi
sleep $1
}
# The first argument is the interval
# If the first argument is once the there is no sleep because it only gets run once
# Hopw many seconds between checks
# Add strings for people you want to be notified about, ex. notify_me="imaqtpie,reckful"
notify_me="reckful,imaqtpie,strawbunnyhunny,pokimane,sodapoppin,methodjosh,nerites,forsen,asmongold,disguisedtoast,avoidingthepuddle,cxlibri"
if [[ $1 == "once" ]];then
poll 0
elif [[ -n $1 ]];then
while true
do
poll "$1"
done
fi