From: Einar Jørgen Haraldseid Date: Mon, 23 Jul 2012 19:03:49 +0000 (+0200) Subject: Patch for å cache filen i ti minutter + fornorsking av variabler + lagt til Røa,... X-Git-Url: https://git.slaskete.net/yr-temp.sh/commitdiff_plain/3173a346cd9744c0a37092a6af781baebfbbb454?ds=sidebyside Patch for å cache filen i ti minutter + fornorsking av variabler + lagt til Røa, Oslo i lista over steder (Ueland) --- diff --git a/yr-temp.sh b/yr-temp.sh index e94c4db..07898b5 100755 --- a/yr-temp.sh +++ b/yr-temp.sh @@ -20,6 +20,9 @@ LC_TIME="nb_NO" # Absoluttpath til oss selv, som vi grepper etter stedsnavn i SELF="$0" +# Cache-tid i sekunder (minimum 600 = 10 minutter, per Yr.no sine bruksvilkÃ¥r" +CACHETID="600" + # Linje Ã¥ starte søk i STARTGREP=$(( $(grep STARTGREPHERE ${SELF} -hn | cut -d ":" -f 1 | tail -n 1) + 1)) @@ -38,14 +41,23 @@ if [ -z "${URL}" ]; then exit 1 fi -# Siden vi gjør flere søk i XML-filen pÃ¥ rad er vi snille og henter data kun en gang -FILE="/tmp/weather-${STEDSNAVN_MATCHED}.xml" -wget -q -O ${FILE} ${URL} +# Sett cachefil: +FIL="/tmp/varsel-${STEDSNAVN_MATCHED}.xml" + +# Sjekk om vi har hentet filen allerede de siste ti minuttene, hent ved behov +# Takk til Sakarias for elegant løsning +if [ -f ${FIL} ]; then + if [ $(stat --format=%Y ${FIL}) -le $(( $(date +%s) - ${CACHETID} )) ]; then + wget -q -O ${FIL} ${URL} + fi +else + wget -q -O ${FIL} ${URL} +fi # Hent ut data ved hjelp av XPath -TEMP=$(cat ${FILE} | xmlstarlet sel -t -v "//weatherstation[1]//@value") -STASJON=$(cat ${FILE} | xmlstarlet sel -t -v "//weatherstation[1]//@name") -TIME_ZULU=$(cat ${FILE} | xmlstarlet sel -t -v "//weatherstation[1]//@time" | tr T ' ') +TEMP=$(cat ${FIL} | xmlstarlet sel -t -v "//weatherstation[1]//@value") +STASJON=$(cat ${FIL} | xmlstarlet sel -t -v "//weatherstation[1]//@name") +TIME_ZULU=$(cat ${FIL} | xmlstarlet sel -t -v "//weatherstation[1]//@time" | tr T ' ') # Og litt ekstra datatygging TIME=$(date +%H.%M -d "${TIME_ZULU}") @@ -4528,6 +4540,7 @@ exit 0 41 Rivarbukt http://www.yr.no/sted/Norge/Finnmark/Alta/Rivarbukt/varsel.xml 41 Rivarbukt http://www.yr.no/sted/Norge/Finnmark/Alta/Rivarbukt/varsel.xml 41 Røa http://www.yr.no/sted/Norge/Hedmark/Engerdal/Røa/varsel.xml +41 Røa, Oslo http://www.yr.no/sted/Norge/Oslo/Oslo/Røa/varsel.xml 41 RoÃ¥ker http://www.yr.no/sted/Norge/Oppland/Øyer/RoÃ¥ker/varsel.xml 41 Roavvegieddi http://www.yr.no/sted/Norge/Finnmark/Tana/Roavvegieddi/varsel.xml 41 Rødbergshamna http://www.yr.no/sted/Norge/Troms/Lenvik/Rødbergshamna/varsel.xml