diff --git a/src/clj/pmagnus/btcprice/web/routes/ws_proxy.clj b/src/clj/pmagnus/btcprice/web/routes/ws_proxy.clj index 8862804..3fc3232 100644 --- a/src/clj/pmagnus/btcprice/web/routes/ws_proxy.clj +++ b/src/clj/pmagnus/btcprice/web/routes/ws_proxy.clj @@ -102,21 +102,42 @@ ;; --- Strike rendering --- -(def ^:private strike-pairs ["BTC/USDT" "BTC/EUR" "USDT/EUR" "EUR/BTC"]) +(def ^:private strike-pairs + [["BTC/USDT" "$"] + ["BTC/EUR" "\u20AC"] + ["USDT/EUR" ""] + ["EUR/BTC" ""]]) + +(defn- format-strike-amount [prefix amount] + (if amount + (let [v (double (bigdec amount))] + (case prefix + "$" (str prefix (da-fmt "%,.2f" v)) + "\u20AC" (str prefix (da-fmt "%,.2f" v)) + amount)) + "\u2014")) + +(defn- eur-to-sats [rates] + (when-let [eur-btc (get rates "EUR/BTC")] + (long (* 54 (double (bigdec eur-btc)) 100000000)))) (defn- strike-json->html [text] - (let [rates (json/read-str text)] + (let [rates (json/read-str text) + sats (eur-to-sats rates)] (str "
" - "
" - "

Strike Ticker

" - "
" + "
" + (if sats + (str "

" + (da-fmt "%,d" sats) " sats

") + "") + "
" (apply str - (for [pair strike-pairs + (for [[pair prefix] strike-pairs :let [amount (get rates pair)]] - (str "
" + (str "
" "" pair "" "" - (or amount "\u2014") + (format-strike-amount prefix amount) "
"))) "
")))