diff --git a/site-cookbooks/kosmos-bitcoin/templates/btc-price-tracker-daily.sh.erb b/site-cookbooks/kosmos-bitcoin/templates/btc-price-tracker-daily.sh.erb index 6c0e4f7..7d3a2ce 100644 --- a/site-cookbooks/kosmos-bitcoin/templates/btc-price-tracker-daily.sh.erb +++ b/site-cookbooks/kosmos-bitcoin/templates/btc-price-tracker-daily.sh.erb @@ -4,35 +4,32 @@ YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) echo "Starting price tracking for $YESTERDAY" >&2 -# Get USD data and extract values -usd_data=$(curl -s "https://www.bitstamp.net/api/v2/ticker/btcusd/") -if [ $? -eq 0 ] && [ ! -z "$usd_data" ]; then - echo "Successfully retrieved USD price data" >&2 - usd_open24=$(echo $usd_data | jq -r '.open_24') - usd_last=$(echo $usd_data | jq -r '.last') -else - echo "ERROR: Failed to retrieve USD price data" >&2 - exit 1 -fi +# Fetch and process rates for a fiat currency +get_price_data() { + local currency=$1 + local data avg open24 last -# Get EUR data and extract values -eur_data=$(curl -s "https://www.bitstamp.net/api/v2/ticker/btceur/") -if [ $? -eq 0 ] && [ ! -z "$eur_data" ]; then - echo "Successfully retrieved EUR price data" >&2 - eur_open24=$(echo $eur_data | jq -r '.open_24') - eur_last=$(echo $eur_data | jq -r '.last') -else - echo "ERROR: Failed to retrieve EUR price data" >&2 - exit 1 -fi + data=$(curl -s "https://www.bitstamp.net/api/v2/ticker/btc${currency,,}/") + if [ $? -eq 0 ] && [ ! -z "$data" ]; then + echo "Successfully retrieved ${currency} price data" >&2 + open24=$(echo "$data" | jq -r '.open_24') + last=$(echo "$data" | jq -r '.last') + avg=$(( (${open24%.*} + ${last%.*}) / 2 )) + echo $avg + else + echo "ERROR: Failed to retrieve ${currency} price data" >&2 + exit 1 + fi +} -# Calculate averages -usd_avg=$(( (${usd_open24%.*} + ${usd_last%.*}) / 2 )) -eur_avg=$(( (${eur_open24%.*} + ${eur_last%.*}) / 2 )) -echo "Calculated averages - USD: $usd_avg, EUR: $eur_avg" >&2 +# Get price data for each currency +usd_avg=$(get_price_data "USD") +eur_avg=$(get_price_data "EUR") +gbp_avg=$(get_price_data "GBP") # Create JSON -json="{\"EUR\":$eur_avg,\"USD\":$usd_avg}" +json="{\"EUR\":$eur_avg,\"USD\":$usd_avg,\"GBP\":$gbp_avg}" +echo "Rates: $json" >&2 # PUT in remote storage response=$(curl -X PUT \