# Resistor colour code clock, Jenny List 2020
## A derivative of binclock rev. 3 (by zeno4ever)

import wifi, time, ntp, system, audio, display, math

#Colour codes. Brown for 1 looks awful on an LED
COLOURS = [0x000000,0x6E2C00,0xFF0000,0xFF4500,0xF8b700,0x008000,0x0000FF,0xEE82EE,0x696969,0xffffff]

display.drawFill(0x000000)
display.flush()

def get_tens(number):
    return math.floor(number/10)

def get_units(number):
    return number-(10*get_tens(number))

if not wifi.status():
    audio.play('/cache/system/wifi_connecting.mp3')
    wifi.connect()
    wifi.wait()
    if not wifi.status():
        audio.play('/cache/system/wifi_failed.mp3')
        time.sleep(6)
        system.launcher()

i = 0
ntp.set_NTP_time()  
while 1:
    # Phone home every 10 minutes
    if (i==600):
        ntp.set_NTP_time()
        i = 0
    else:
        i += 1
 
    t_hour = time.localtime()[3]
    t_min = time.localtime()[4]
    t_sec = time.localtime()[5]
                
    display.drawFill(0x000000)
    
    hour_ten = get_tens(t_hour)
    display.drawPixel(0, 0, COLOURS[hour_ten])
    display.drawPixel(1, 0, COLOURS[hour_ten])
    
    hour_unit = get_units(t_hour)
    display.drawPixel(2, 0, COLOURS[hour_unit])
    display.drawPixel(3, 0, COLOURS[hour_unit])
    
    minute_ten = get_tens(t_min)
    display.drawPixel(0, 1, COLOURS[minute_ten])
    display.drawPixel(1, 1, COLOURS[minute_ten])
    
    minute_unit = get_units(t_min)
    display.drawPixel(2, 1, COLOURS[minute_unit])
    display.drawPixel(3, 1, COLOURS[minute_unit])
    
    second_ten = get_tens(t_sec)
    display.drawPixel(0, 2, COLOURS[second_ten])
    display.drawPixel(1, 2, COLOURS[second_ten])
    
    second_unit = get_units(t_sec)
    display.drawPixel(2, 2, COLOURS[second_unit])
    display.drawPixel(3, 2, COLOURS[second_unit])
    
    display.flush()

    time.sleep(1)