Patch for å cache filen i ti minutter + fornorsking av variabler + lagt til Røa,...
authorEinar Jørgen Haraldseid <einar@haraldseid.net>
Mon, 23 Jul 2012 19:03:49 +0000 (21:03 +0200)
committerEinar Jørgen Haraldseid <einar@haraldseid.net>
Mon, 23 Jul 2012 19:03:49 +0000 (21:03 +0200)
yr-temp.sh

index e94c4dbb4f11c524cf25632e818079838c0f6468..07898b57c629d1590777cdd339eb8c354c3688ea 100755 (executable)
@@ -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