#!/usr/bin/env python
# vim: set fileencoding=utf-8 :
# Giv din mening til kende omkring en mening

import simplejson as json
from os import environ, path
from sys import exit
import sys
import time

def main():
    if len(sys.argv) < 3:
        print "Nej, du gør det forkert.  Sådan gøres det korrekt: vurder redhead 6.0"
        exit(0)

    mening = sys.argv[1]
    meningl = mening.lower()

    try:
        stemme = float(sys.argv[2])
    except ValueError:
        print "Formatet er: vurder redhead 6.0"
        exit(0)

    if stemme < 0 or stemme > 10:
        print "Jaja, nu prøver du lige igen med en stemme mellem 0 og 10."
        exit(0)

    datafile = path.join(environ['CONCIEGGS_DB_DIR'], 'meningstats')

    if not path.exists(datafile):
        f = open(datafile, 'w+')
        f.write('{}')
        f.close()

    dbfile = open(datafile, 'r')
    db = json.load(dbfile)
    dbfile.close()

    if meningl not in db:
        print "Jeg kender ikke den mening.  Opret hende med 'nymening %s'." % mening
        exit(0)

    eggser = environ['EGGS_USER']

    db[meningl]['vurderinger'][eggser] = {'stemme': stemme, 'tidspunkt': time.time()}

    s = 0
    c = 0
    for e in db[meningl]['vurderinger'].iterkeys():
        s += db[meningl]['vurderinger'][e]['stemme']
        c += 1

    db[meningl]['gennemsnit'] = s/c

    dbfile = open(datafile, 'w')
    json.dump(db, dbfile)
    dbfile.close()
    print "%s har nu et gennemsnit på %.3f/10 efter %d stemmer." % \
            (mening, db[meningl]['gennemsnit'], len(db[meningl]['vurderinger']))
    dbfile.close()

if __name__ == '__main__':
    main()
