#!/usr/bin/env python3
__author__ = "david cobac"
__email__ = "david.cobac@gmail.com"
__year__ = 2020

import argparse
import dtv2
import colour
import json


parseur_args = argparse.ArgumentParser(
    description="""Change Drevo tyrfing keys colors""")
parseur_args.add_argument('filename', help='config_file_name (json)')
args = parseur_args.parse_args()


def apply_changes(kbd, dico):
    if 'kbd' in dico:
        kbd.kbd(colour.COLOR_NAME_TO_RGB[dico['kbd']])
    #
    if 'cat' in dico:
        for k, v in dico['cat'].items():
            kbd.category(k, colour.COLOR_NAME_TO_RGB[v])
    #
    if 'key' in dico:
        colors = [colour.COLOR_NAME_TO_RGB[v] for v in dico['key'].values()]
        kbd.key_set(list(dico['key'].keys()), colors)


clavier = dtv2.dtv2()

with open(args.filename) as fh:
    config = fh.read()
    dico_config = json.loads(config)
    apply_changes(clavier, dico_config)
