#!/bin/sh
#jango music terminal version
#author:Wos
function logo()
{
echo -e "\033[96;40m"
base64 -d <<<H4sIAAAAAAAAA5WPMQ7EIBAD+7zCHd3W+4xUSOkiRM8PePsN5iKlvEOwmPWAjKSe2aTo2WId0OrNbetYPs6BvvMsGAXRhD9EZRZdNCJPIcLoMlhjDBMV1kJ6TNcXOufcBOwX5fYL7cTYqPQ8VtMiNHM6leMdF22nYa1S1153Phu6EXxmB/ht/IN+AOSbzPxYAQAA|gunzip
}
UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.69 Safari/537.36"
HTMP=/tmp/jango.html
JSONTEMP=/tmp/jsontemp.txt
#curl proxy setting
PXY=""
if [ $# == 0 ] || [ $1 == '-h' ]; then
logo
echo -e "usage:`basename $0` [Singer or Band Name]"
echo -e "\033[0m"
exit -1
fi
KW=$(echo $@|sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
while :;
do
curl ${PXY} --connect-timeout 4 -i -s "https://www.jango.com/artists/jsearch?query=${KW// /+}&search_type=alas&cxt=undefined" -H "X-Requested-With: XMLHttpRequest" -H "User-Agent: ${UA}" -H "Referer: https://www.jango.com" > ${HTMP}
url=$(cat ${HTMP}|tail -1|jq -r '.artists|.results[0].url' 2>/dev/null)
#station_id
stid=$(cat ${HTMP}|tail -1|jq -r '.artists|.results[0].station_id' 2>/dev/null)
#session_id
sid=$(curl ${PXY} --connect-timeout 4 -s "https://www.jango.com${url}" -H "X-Requested-With: XMLHttpRequest" -H "User-Agent: ${UA}" -H "Referer: https://www.jango.com"|grep session_id|awk -F\" '{print $2}')
#cookie for next request from previous reponse
SET_COOKIE=$(cat ${HTMP}|grep "^set-cookie"|awk '{print $2}'|xargs)
if [[ -z ${stid} ]] || [[ -z ${sid} ]] || [[ -z ${SET_COOKIE} ]]; then
continue
fi
break
done
while :;
do
clear
logo
echo -e " q:next,^c:exit"
echo -e "\033[0m"
echo -ne "\033[?25l"
curl ${PXY} --connect-timeout 4 -i -s "https://www.jango.com/streams/info?sid=${sid}&stid=${stid}&ver=304&shufflin=1" -H "Cookie: $SET_COOKIE" -H "X-Requested-With: XMLHttpRequest" -H "User-Agent: ${UA}" -H "Referer: https://www.jango.com" > ${JSONTEMP}
if [[ $(cat ${JSONTEMP}|grep -o "url\":\""|wc -l) -ne 0 ]]; then
SET_COOKIE=$(cat ${JSONTEMP}|grep "^set-cookie"|awk '{print $2}'|xargs)
song=$(cat ${JSONTEMP}|tail -1|jq -r .song 2>/dev/null)
artist=$(cat ${JSONTEMP}|tail -1|jq -r .artist 2>/dev/null)
LINK=$(cat ${JSONTEMP}|tail -1|jq -r .url 2>/dev/null)
echo -e "\033[92;40m[artist:${artist} song:${song}]\033[0m"
mpv --really-quiet "http:${LINK}"
fi
done