#!/usr/bin/python
# -*- coding: latin-1 -*-
from __future__ import print_function
import urllib2
import simplejson
import sys
from urlparse import urljoin
from datetime import datetime

ASCII_ART = '''
           _           _          __  __     
     /\   | |         | |        / _|/ _|    
    /  \  | |__   __ _| | ____ _| |_| |_ ___ 
   / /\ \ | '_ \ / _` | |/ / _` |  _|  _/ _ \ 
  / ____ \| |_) | (_| |   < (_| | | | ||  __/
 /_/    \_\_.__/ \__,_|_|\_\__,_|_| |_| \___|                                             
'''


API_URL = "http://kaffe.abakus.no/api/"


def get_json(api_module):
    url = urljoin(API_URL, api_module)
    req = urllib2.Request(url)
    opener = urllib2.build_opener()
    f = opener.open(req)
    return simplejson.load(f)


def main():
    status_json = get_json('status')
    coffee = status_json['coffee']
    on = coffee['status']
    last_start = coffee['last_start']
    last_start = datetime.strptime(last_start, "%Y-%m-%d %H:%M")
    time_delta = datetime.now() - last_start
    print(ASCII_ART)

    if on:
        print("Kaffetrakteren er på!")

    if int(time_delta.days):
        print("Det er ingen som har traktet kaffe i dag.")
    else:
        print("Kaffe ble sist traktet for %d timer og %d minutter siden." %
              (time_delta.seconds // (60 * 60), time_delta.seconds // (60) % 60))

    # Prints a beautiful graph displaying Abakus' coffee consumption problem
    if len(sys.argv) > 1 and sys.argv[1] == "stats":
        stats_json = get_json("stats")
        stats = stats_json['stats']

        for date, value in stats.iteritems():
            print("%s |%s %s" % (date, int(value) * "#", value))


if __name__ == '__main__':
    main()
