#!python
__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):
    dico_final = {}
    #
    #
    if 'kbd' in dico:
        for key in dtv2.keys:
            dico_final[key] = colour.COLOR_NAME_TO_RGB[dico['kbd']]
    #
    if 'cat' in dico:
        for cat, v in dico['cat'].items():
            for key in dtv2.category_keys[cat]:
                dico_final[key] = colour.COLOR_NAME_TO_RGB[v]
    #
    if 'key' in dico:
        for key, v in dico['key'].items():
            dico_final[key] = colour.COLOR_NAME_TO_RGB[v]
    #
    #
    kbd.key_set(dico_final)


clavier = dtv2.dtv2()

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