Para um tempo mais curto, o link fornece dados meteorológicos do Yahoo! no formato de texto e xml.
As filds do XML podem ser obtidas com um analisador XML como xmllint, por exemplo,
Eu escrevi um script q & amp; d weather-fetch, que recebe a temperatura atual e a descrição do tempo, depois armazena um símbolo unicode correspondente à descrição e gera a saída como
☂ 6 ° C
Eu atualizo regularmente via cronjob e uso a saída no status da minha bandeja.
Obtenha seu ID em yahoocom / news / weather. Mude o local para o local desejado e procure por ID no URL (ou seja, se o URL for yahoocom / news / weather / alemanha / north-rhine-westphalia / bielefeld-20066057, o ID é 20066057).
O XML contém outros campos, ou seja, dados de previsão, vento etc. - você também pode analisá-los, se desejar.
Infelizmente alguns símbolos não estão representados no Ubuntufont… fique à vontade para ajustar.
Aqui está o meu script (substitua 20066057 pelo seu ID se você não mora em Bielefeld) - depende do bash, curl e xmllint.
#!/bin/sh
#☁☂☔❄❅❆☃ ☀☁☂⚡⚐☼
# write xml to variable
w_xml=$(curl --silent "http://weather.tuxnet24.de/?id=20066057&mode=xml");
# get fields from xml via xmllint | xargs for trimming
# weather description
w_txt=$(xmllint --xpath "string(//current_text)" - <<<"$w_xml" | xargs);
# temperature | remove spaces from text (°C prepended by space)
w_tpc=$(xmllint --xpath "string(//current_temp)" - <<<"$w_xml" | xargs); w_tpc=${w_tpc//[[:blank:]]/};
# further fields not used atm
# w_tph=$(xmllint --xpath "string(//current_temp_high)" - <<<"$w_xml" | xargs);
# w_tpl=$(xmllint --xpath "string(//current_temp_low)" - <<<"$w_xml" | xargs);
# set $w_sym according to $w_txt
if [ "$w_txt" == "Sunny" ]; then w_sym="☼";
elif [ "$w_txt" == "Mostly Sunny" ]; then w_sym="☼";
elif [ "$w_txt" == "Showers" ]; then w_sym="☂";
elif [ "$w_txt" == "Clear" ]; then w_sym="☾";
elif [ "$w_txt" == "Thunderstorms" ]; then w_sym="⚡";
elif [ "$w_txt" == "Scattered Thunderstorms" ]; then w_sym="☔";
elif [ "$w_txt" == "Isolated Thundershovers" ]; then w_sym="☔";
elif [ "$w_txt" == "Cloudy" ]; then w_sym="☁";
elif [ "$w_txt" == "Mostly Cloudy" ]; then w_sym="☁";
elif [ "$w_txt" == "Partly Cloudy" ]; then w_sym="☼☁";
elif [ "$w_txt" == "Breezy" ]; then w_sym="⚐";
# if unknown text, set text instead of symbol
else w_sym=$w_txt;
fi
# output <symbol><space><temp-in-°C>
echo "$w_sym"" ""$w_tpc";