revuo-weekly/bin/xmrpriceperf
2025-02-21 09:08:50 -07:00

58 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
# xmrpriceperf
# Get the current date
current_date=$(date +"%m/%d/%y")
# Set the CoinGecko API endpoint and the coin ID
COINGECKO_ENDPOINT='https://api.coingecko.com/api/v3/coins/monero'
COINGECKO_QUERY='?localization=false&tickers=false&market_data=true&community_data=false&developer_data=false&sparkline=false'
HAVENO_MARKETS_ENDPOINT='https://haveno.markets/api/v1/tickers'
# Function to query best street price source
get_street_price() {
# Haveno.Markets
haveno_markets_streetprice="$(curl --silent --header 'Accept: application/json' \
"${HAVENO_MARKETS_ENDPOINT}" | jq -r '.USD.last_price')"
# Monero.boats (RIP)
#boats_streetprice=$(curl --silent --header 'Accept: application/json' 'https://monero.boats/prices' | jq -r '.haveno.USD')
# OpenMonero.com (WIP)
#openmonero_streetprice=$()
# Bisq (WIP)
#bisq_streetprice=$()
printf '%s\n' "${haveno_markets_streetprice}"
}
# Fetch CoinGecko data
market_data=$(curl --silent --header 'Accept: application/json' \
"${COINGECKO_ENDPOINT}${COINGECKO_QUERY}" | jq '.market_data')
# Extract the relevant data using jq
usd_price=$(echo $market_data | jq -r '.current_price.usd')
eur_price=$(echo $market_data | jq -r '.current_price.eur')
btc_price=$(echo $market_data | jq -r '.current_price.btc')
market_cap=$(echo $market_data | jq -r '.market_cap.usd' | xargs numfmt --g)
week_change_usd=$(echo $market_data | jq -r '.price_change_percentage_7d_in_currency.usd')
month_change_usd=$(echo $market_data | jq -r '.price_change_percentage_30d_in_currency.usd')
year_change_usd=$(echo $market_data | jq -r '.price_change_percentage_1y_in_currency.usd')
week_change_eur=$(echo $market_data | jq -r '.price_change_percentage_7d_in_currency.eur')
month_change_eur=$(echo $market_data | jq -r '.price_change_percentage_30d_in_currency.eur')
year_change_eur=$(echo $market_data | jq -r '.price_change_percentage_1y_in_currency.eur')
week_change_btc=$(echo $market_data | jq -r '.price_change_percentage_7d_in_currency.btc')
month_change_btc=$(echo $market_data | jq -r '.price_change_percentage_30d_in_currency.btc')
year_change_btc=$(echo $market_data | jq -r '.price_change_percentage_1y_in_currency.btc')
# Print markdown-formatted output
printf '# Price & Performance\n'
printf '**Market Cap:** $%s\n' "${market_cap}"
printf '**Street Price:** $%0.2f\n' "$(get_street_price)"
printf '| Currency | Price | Week Change | Month Change | Year Change |\n'
printf '|----------|-------|-------------|--------------|-------------|\n'
printf '| USD | $%0.2f | %+0.2f%% | %+0.2f%% | %+0.2f%% |\n' \
"${usd_price}" "${week_change_usd}" "${month_change_usd}" "${year_change_usd}"
printf '| EUR | €%0.2f | %+0.2f%% | %+0.2f%% | %+0.2f%% |\n' \
"${eur_price}" "${week_change_eur}" "${month_change_eur}" "${year_change_eur}"
printf '| BTC | ₿%f | %+0.2f%% | %+0.2f%% | %+0.2f%% |\n' \
"${btc_price}" "${week_change_btc}" "${month_change_btc}" "${year_change_btc}"