|
|
package main
import ( "git.aiterp.net/lucifer/new-server/models" "github.com/olekukonko/tablewriter" "io" "strconv" "strings" )
func WriteDeviceStateTable(w io.Writer, devices []models.Device) { table := tablewriter.NewWriter(w) table.SetHeader([]string{"ID", "NAME", "POWER", "COLOR", "INTENSITY", "TEMPERATURE"})
table.SetReflowDuringAutoWrap(true)
for _, v := range devices { powerStr := "" if v.HasCapability(models.DCPower) { powerStr = strconv.FormatBool(v.State.Power) }
colorStr := "" if v.HasCapability(models.DCColorHSK, models.DCColorHS, models.DCColorKelvin) { colorStr = v.State.Color.String() }
temperatureString := "" if v.HasCapability(models.DCTemperatureControl, models.DCTemperatureSensor) { temperatureString = strconv.FormatFloat(v.State.Temperature, 'f', -1, 64) }
intensityString := "" if v.HasCapability(models.DCIntensity) { intensityString = strconv.FormatFloat(v.State.Intensity, 'f', -1, 64) }
table.Append([]string{ strconv.Itoa(v.ID), v.Name, powerStr, colorStr, intensityString, temperatureString, }) }
table.Render() }
func WriteDeviceInfoTable(w io.Writer, devices []models.Device) { table := tablewriter.NewWriter(w) table.SetHeader([]string{"ID", "NAME", "ICON", "BUTTONS", "TAGS", "USER PROPERTIES"})
table.SetReflowDuringAutoWrap(false)
for _, v := range devices { propStr := "" for key, value := range v.UserProperties { propStr += key + "=" + value + " " }
table.Append([]string{ strconv.Itoa(v.ID), v.Name, v.Icon, strings.Join(v.ButtonNames, ","), strings.Join(v.Tags, ","), propStr, }) }
table.Render() }
|