// Package bar handles the main program for i3going-on.
// Copyright (C) 2022 Kevin Lyda <kevin@lyda.ie>
package bar

import (
	"bufio"
	"fmt"
	"os"
	"strings"

	"gitlab.ie.suberic.net/kevin/i3going-on/modules"
	"gopkg.in/yaml.v2"
)

//{"button":1,"modifiers":[],"x":1952,"y":1144,"relative_x":62,"relative_y":14,"width":112,"height":22}
func handleCommands(clicks chan modules.Click) {
	logger, _ := os.Create("/tmp/i3going-on.log")

	stdin := bufio.NewReader(os.Stdin)
	for {
		logger.WriteString("Looking for a click...\n")

		object, err := stdin.ReadString('}')
		if err != nil {
			continue
		}
		object = strings.Trim(object, "[,\n")
		logger.WriteString(fmt.Sprintf("Got an object: <<%s>>\n", object))
		objReader := strings.NewReader(object)
		clickParser := yaml.NewDecoder(objReader)
		click := modules.Click{}
		err = clickParser.Decode(&click)
		if err != nil {
			logger.WriteString(fmt.Sprintf("Error on click: %#v\n", err))
			clicks <- modules.Click{
				Name: fmt.Sprintf("ERROR: %s", err),
			}
			continue
		}
		logger.WriteString(fmt.Sprintf("Parsed ok click: %#v\n", click))
		clicks <- click
	}
}