#!/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' # Function to query best street price source get_street_price() { #TODO: More sources! # Haveno.Markets xidel https://haveno.markets/ --xpath "//span[@class='price']" | head -n1 # Monero.boats #curl --silent --header 'Accept: application/json' 'https://monero.boats/prices' } # Fetch API data in parallel like a BAMF { streetprice_data="$(get_street_price)" & \ 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) street_price="$(echo $streetprice_data | jq -r '.haveno.USD')" 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:** %s\n' "${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}"