# 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))
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}")
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