Work on darksky script
This commit is contained in:
parent
0e2565eade
commit
a8c02098db
1 changed files with 72 additions and 0 deletions
72
bin/.bin/darksky
Executable file
72
bin/.bin/darksky
Executable file
|
@ -0,0 +1,72 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Script to get a summary of the weather from darksky
|
||||
# Uses: https://www.latlong.net/convert-address-to-lat-long.html to get the coordinates from a location name
|
||||
# Uses https://darksky.net/dev/docs for the forcast
|
||||
# You will need to use your own api key, I have put mine in darksky.private
|
||||
# requires jq, curl, bash, sed (with -E option)
|
||||
# I have made it show informatio I am interested in
|
||||
# Eventually, it would be nice to use this to create a graphical output like wttr.in
|
||||
|
||||
initial=$@
|
||||
place=${initial// /+}
|
||||
if [ -z "$place" ]; then
|
||||
place="Bury+St+Edmunds"
|
||||
fi
|
||||
|
||||
coordinates=$( curl 'https://www.latlong.net/_spm4.php' \
|
||||
-H 'dnt: 1' \
|
||||
-H 'x-requested-with: XMLHttpRequest' \
|
||||
-H 'accept: */*' \
|
||||
--data 'c1='"$place"'&action=gpcm&cp=' -s )
|
||||
|
||||
if [ -z "$coordinates" ]; then
|
||||
echo "Can't find coordinates"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# This file sets the variable $secret to my api key
|
||||
source "$(dirname $0)/darksky.private"
|
||||
|
||||
url="https://api.darksky.net/forecast/$secret/$coordinates?units=uk2"
|
||||
|
||||
function convertDate(){
|
||||
timestamp=$(echo "$1" | grep -Eo '[0-9]{10}')
|
||||
formatted=$(date -d @"$timestamp")
|
||||
echo $1 | sed "s/$timestamp/\"$formatted\"/" | sed -E 's/^([^:]+)/"\1"/'
|
||||
}
|
||||
|
||||
jqstatement='{
|
||||
summary: [
|
||||
.currently.summary,
|
||||
.minutely.summary,
|
||||
.hourly.summary,
|
||||
.daily.summary
|
||||
],
|
||||
forcast: [
|
||||
.daily.data[] | {
|
||||
time: .time,
|
||||
summary: .summary,
|
||||
sunrise: .sunriseTime,
|
||||
sunset: .sunsetTime,
|
||||
temperatureHigh: {
|
||||
temperature: .temperatureHigh,
|
||||
time: .temperatureHighTime
|
||||
},
|
||||
temperatureLow: {
|
||||
temperature: .temperatureLow,
|
||||
time: .temperatureLowTime
|
||||
},
|
||||
pricipitation:{
|
||||
type: .precipType,
|
||||
probability: .precipProbability
|
||||
}
|
||||
}
|
||||
],
|
||||
alerts: .alerts
|
||||
}'
|
||||
|
||||
|
||||
export -f convertDate
|
||||
curl -s $url | jq "$jqstatement" | sed -E "s/(.*)([0-9]{10})(.*)/convertDate \"&\"/eg" | jq
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue