#!/usr/bin/python3 -u
"""
Description: Toggle switch in HomeAssistant
Author: thnikk
"""
import argparse
import configparser
import os
import sys
import requests


def parse_args():
    """ Parse arguments """
    parser = argparse.ArgumentParser(
        description="Toggle home assistant devices"
    )
    parser.add_argument('device', help='Device to toggle')
    return parser.parse_args()


def get_config():
    """ Get config """
    config_file = os.path.expanduser("~/.config/hass-toggle.ini")
    if not os.path.exists(config_file):
        with open(config_file, "a", encoding='utf-8') as f:
            f.write("[settings]\nip = \ntoken = ")
            f.close()
        print('Default config created, add IP and token before running again.')
        sys.exit(0)
    config = configparser.ConfigParser()
    config.read(config_file)
    return config['settings']


def main():
    """ Main function """
    config = get_config()
    args = parse_args()

    response = requests.post(
        f"http://{config['ip']}/api/services/switch/toggle",
        headers={"Authorization": f"Bearer {config['token']}"},
        json={"entity_id": args.device},
        timeout=3
    )

    if response.json():
        print(response.json())


if __name__ == "__main__":
    main()
