DRY up code, add GBP rates

This commit is contained in:
Râu Cao 2025-01-17 14:38:10 -05:00
parent 89f1790afc
commit d45f782a5e
Signed by: raucao
GPG Key ID: 37036C356E56CC51

View File

@ -4,35 +4,32 @@
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
echo "Starting price tracking for $YESTERDAY" >&2 echo "Starting price tracking for $YESTERDAY" >&2
# Get USD data and extract values # Function to get and process price data for a currency
usd_data=$(curl -s "https://www.bitstamp.net/api/v2/ticker/btcusd/") get_price_data() {
if [ $? -eq 0 ] && [ ! -z "$usd_data" ]; then local currency=$1
echo "Successfully retrieved USD price data" >&2 local data avg open24 last
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
# Get EUR data and extract values data=$(curl -s "https://www.bitstamp.net/api/v2/ticker/btc${currency,,}/")
eur_data=$(curl -s "https://www.bitstamp.net/api/v2/ticker/btceur/") if [ $? -eq 0 ] && [ ! -z "$data" ]; then
if [ $? -eq 0 ] && [ ! -z "$eur_data" ]; then echo "Successfully retrieved ${currency} price data" >&2
echo "Successfully retrieved EUR price data" >&2 open24=$(echo "$data" | jq -r '.open_24')
eur_open24=$(echo $eur_data | jq -r '.open_24') last=$(echo "$data" | jq -r '.last')
eur_last=$(echo $eur_data | jq -r '.last') avg=$(( (${open24%.*} + ${last%.*}) / 2 ))
else echo $avg
echo "ERROR: Failed to retrieve EUR price data" >&2 else
exit 1 echo "ERROR: Failed to retrieve ${currency} price data" >&2
fi exit 1
fi
}
# Calculate averages # Get price data for each currency
usd_avg=$(( (${usd_open24%.*} + ${usd_last%.*}) / 2 )) usd_avg=$(get_price_data "USD")
eur_avg=$(( (${eur_open24%.*} + ${eur_last%.*}) / 2 )) eur_avg=$(get_price_data "EUR")
echo "Calculated averages - USD: $usd_avg, EUR: $eur_avg" >&2 gbp_avg=$(get_price_data "GBP")
# Create JSON # 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 # PUT in remote storage
response=$(curl -X PUT \ response=$(curl -X PUT \