diff --git a/earth_wallpaper.sh b/earth_wallpaper.sh index c340610..9a7f36a 100755 --- a/earth_wallpaper.sh +++ b/earth_wallpaper.sh @@ -134,57 +134,34 @@ fi str_city=$(echo "$city" | sed "s/ /_/g" -) message "str_city $str_city" wiki_url="https://en.wikipedia.org/wiki/$str_city" +python3_cmd=$(which python3) +if [ "${python3_cmd}" == "" ]; then + echo "Python3 not found" + exit 3 +fi +escaped_city=$("${python3_cmd}" -c 'import urllib.parse; import sys; print(urllib.parse.quote(sys.argv[1]))' "${str_city}") +wiki_url="https://en.wikipedia.org/w/api.php?action=query&prop=coordinates&format=json&titles=${escaped_city}" message "wiki_url $wiki_url" wiki_content=$("${curl_cmd}" -s $wiki_url) -latitude=$(echo $wiki_content | egrep -o "[0-9]{1,2}°[0-9]?[0-9]?′?[0-9]?[0-9]?″?[NS]" | head -n 1) -message "latitude $latitude" -longitude=$(echo $wiki_content | egrep -o "[0-9]{1,2}°[0-9]?[0-9]?′?[0-9]?[0-9]?″?[EW]" | head -n 1) -message "longitude $longitude" -g_latitude=$(echo $latitude | egrep -o "[0-9]{1,2}°" | sed "s/°//g" - ) -message "g_latitude $g_latitude" -m_latitude=$(echo $latitude | egrep -o "[0-9]{1,2}′" | sed "s/′//g" - ) -message "m_latitude $m_latitude" -[[ "$m_latitude" == "" ]] && m_latitude=0 -s_latitude=$(echo $latitude | egrep -o "[0-9]{1,2}″" | sed "s/″//g" - ) -message "s_latitude $s_latitude" -[[ "$s_latitude" == "" ]] && s_latitude=0 -o_latitude=$(echo $latitude | egrep -o "[NS]") -if [[ "$o_latitude" == "S" ]]; then - o_latitude=South +latitude=$(echo "${wiki_content}" | jq '.query.pages[].coordinates[0].lat') +if (( $(echo "${latitude} > 0" | bc -l) )); then + o_latitude=North else - o_latitude=North + o_latitude=South fi -message "o_latitude $o_latitude" -gm_latitude=$(echo "scale=2; $m_latitude / 60" | bc) -message "gm_latitude $gm_latitude" -gs_latitude=$(echo "scale=2; $m_latitude / 3600" | bc) -message "gs_latitude $gs_latitude" -g_latitude=$(echo "scale=2; $g_latitude + $gm_latitude + $gs_latitude" | bc) -message "g_latitude $g_latitude" -g_longitude=$(echo $longitude | egrep -o "[0-9]{1,2}°" | sed "s/°//g" - ) -message "g_longitude $g_longitude" -m_longitude=$(echo $longitude | egrep -o "[0-9]{1,2}′" | sed "s/′//g" - ) -[[ "$m_longitude" == "" ]] && m_longitude=0 -message "m_longitude $m_longitude" -s_longitude=$(echo $longitude | egrep -o "[0-9]{1,2}″" | sed "s/″//g" - ) -[[ "$s_longitude" == "" ]] && s_longitude=0 -message "s_longitude $s_longitude" -o_longitude=$(echo $longitude | egrep -o "[EW]") -if [[ "$o_longitude" == "E" ]]; then - o_longitude=East +latitude="${latitude//-/}" +message "Latitude '${latitude} ${o_latitude}'" +longitude=$(echo "${wiki_content}" | jq '.query.pages[].coordinates[0].lon') +if (( $(echo "${longitude} > 0" | bc -l) )); then + o_longitude=East else - o_longitude=West + o_longitude=West fi -message "o_longitude $o_longitude" -gm_longitude=$(echo "scale=2; $m_longitude / 60" | bc) -message "gm_longitude $gm_longitude" -gs_longitude=$(echo "scale=2; $m_longitude / 3600" | bc) -message "gs_longitude $gs_longitude" -g_longitude=$(echo "scale=2; $g_longitude + $gm_longitude + $gs_longitude" | bc) -message "g_longitude $g_longitude" -#url='https://www.fourmilab.ch/cgi-bin/Earth?img=learth.evif&imgsize=1366&dynimg=y&opt=-l&lat=41&ns=North&lon=0&ew=East&alt=35785&tle=&date=0&utc=&jd=' +longitude="${longitude//-/}" +message "Longitude '${longitude} ${o_longitude}'" -url="https://www.fourmilab.ch/cgi-bin/Earth?img=learth.evif&imgsize=$screen_width&dynimg=y&opt=-l&lat=$g_latitude&ns=$o_latitude&lon=$g_longitude&ew=$o_longitude&alt=35785&tle=&date=0&utc=&jd=" +#url='https://www.fourmilab.ch/cgi-bin/Earth?img=learth.evif&imgsize=1366&dynimg=y&opt=-l&lat=41&ns=North&lon=0&ew=East&alt=35785&tle=&date=0&utc=&jd=' +url="https://www.fourmilab.ch/cgi-bin/Earth?img=learth.evif&imgsize=$screen_width&dynimg=y&opt=-l&lat=$latitude&ns=$o_latitude&lon=$longitude&ew=$o_longitude&alt=35785&tle=&date=0&utc=&jd=" message "URL $url" cur_date=$(date +%Y-%m-%d) time=$(date +%H.%M.%S)