#!/bin/sh MUSIC_PATH="music" urlencode() { echo $1 \ | sed 's#/#\%2F#g' \ | sed 's# #\%20#g' #\ #| tr -d '"' } if [[ -z $MOOD_ipinfo ]]; then export MOOD_ipinfo=$(curl ipinfo.io/json 2>/dev/null) fi jqurl() { echo $(urlencode $(echo $MOOD_ipinfo | jq -r $1)) } gethour() { echo $RESP \ | jq -r $1 \ | cut -dT -f2 } location=$(jqurl '.loc') timezone=$(jqurl '.timezone') URL="https://api.open-meteo.com/v1/forecast?current=weather_code&forecast_days=1&daily=sunrise,sunset" URL="$URL&timezone=$timezone" URL="$URL&latitude=$(echo $location | cut -d, -f1)" URL="$URL&longitude=$(echo $location | cut -d, -f2)" RESP=$(curl $URL 2>/dev/null) CODE=$(echo $RESP | jq -r '.current.weather_code') TIME="$(gethour '.current.time')" SUNRISE="$(gethour '.daily.sunrise[0]')" SUNSET="$(gethour '.daily.sunset[0]')" if [[ ( $TIME > $SUNRISE ) && ( $TIME < $SUNSET ) ]]; then TIME='day' else TIME='night' fi echo "Obtained weather code: $CODE" T="" [ $CODE -ge 0 ] && T=$TIME [ $CODE -ge 40 ] && T='fog' [ $CODE -ge 50 ] && T='rain' [ $CODE -ge 70 ] && T='snow' [ $CODE -ge 80 ] && T='rain' [ $CODE -ge 85 ] && T='snow' [ $CODE -ge 90 ] && T='storm' CODE=$T echo "Playing playlist for: $CODE" echo "" FILES=$(find $MUSIC_PATH -regex "$MUSIC_PATH/${CODE}_.*" \ | sort -R) setopt shwordsplit for line in $FILES; do echo "${line%.*}" | sed "s#^${MUSIC_PATH}/${CODE}_##"; done unsetopt shwordsplit killall mpv &>/dev/null 2>/dev/null $(echo $FILES | mpv --playlist=- /dev/null 2>/dev/null &) # disown