#!/usr/bin/python3
import sys
import requests
import json
from termcolor import colored

# sample request:

# [
#   {
#     "_id": "629672ecb982f4a1be3a7dd6",
#     "device": "xDrip-DexcomG5",
#     "date": 1654026986232,
#     "dateString": "2022-05-31T19:56:26.232Z",
#     "sgv": 185,
#     "delta": 0.996,
#     "direction": "Flat",
#     "type": "sgv",
#     "filtered": 0,
#     "unfiltered": 0,
#     "rssi": 100,
#     "noise": 1,
#     "sysTime": "2022-05-31T19:56:26.232Z",
#     "utcOffset": -240,
#     "mills": 1654026986232
#   }
# ]

tmux = '--tmux' in sys.argv
lemonbar = '--lb' in sys.argv

down = '\u2193'     # ↓
falling = '\u2798'  # ➘
flat = '\u2192'     # →
rising = '\u279a'   # ➚
up = '\u2191'       # ↑

url = 'http://blood.dump.town'
options = '/api/v1/entries.json?count=1&token=phone-7631d7eebc79825b'

try:
    res = requests.get(url + options)
except:
    sys.exit()

sugar = res.json()[0]


delta = sugar['delta']
sgv = sugar['sgv']
direction = sugar['direction']

if delta < -10:
    arrow = down
if delta >= -10 and delta < -1:
    arrow = falling
if delta >= -1 and delta <= 1:
    arrow = flat
if delta > 1 and delta <= 10:
    arrow = rising
if delta > 10:
    arrow = up

if (sgv >= 225 or sgv <= 80):
    color = 'red'
elif ((sgv >= 180 and sgv <= 225)
        or (sgv <= 100 and sgv >= 80)):
    color = 'yellow'
else:
    color = 'green'

if tmux:
    print(f'#[bg={color}] ' +
        str(round(sugar['sgv'], 1)) + ' ' +
        arrow + ' ' +
        '(' + str(delta) + ')'
        )
elif lemonbar:
    print(str(round(sugar['sgv'], 1)) + ' ' +
          arrow + ' ' +
          '(' + str(delta) + ')'
        )
else:
    print(colored(str(sugar['sgv']) +
                ' ' + arrow + ' ' +
                '(' + str(delta) + ')',
                color))
