#!/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