From 3173a346cd9744c0a37092a6af781baebfbbb454 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Einar=20J=C3=B8rgen=20Haraldseid?= Date: Mon, 23 Jul 2012 21:03:49 +0200 Subject: [PATCH] =?utf8?q?Patch=20for=20=C3=A5=20cache=20filen=20i=20ti=20?= =?utf8?q?minutter=20+=20fornorsking=20av=20variabler=20+=20lagt=20til=20R?= =?utf8?q?=C3=B8a,=20Oslo=20i=20lista=20over=20steder=20(Ueland)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- yr-temp.sh | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) 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 -- 2.30.2