// Package module implements all the modules. // Copyright (C) 2022 Kevin Lyda <kevin@lyda.ie> package modules import ( "fmt" ) // TextMod module parameters for the text module. type TextMod struct { name string onclick string Text string `yaml:"text"` Color string `yaml:"color"` } // NewText creates a TextMod instance. func NewText(m *Module) *TextMod { t := &TextMod{ name: m.Name, onclick: m.OnClick, } if t.name == "" { t.name = "text" } return t } // Name returns the name setting for the module. func (t *TextMod) Name() string { return t.name } // OnClick returns the on-click setting for the module. func (t *TextMod) OnClick() string { return t.onclick } // Render renders the module. func (t *TextMod) Render() string { // TODO: Make color and name optional. return fmt.Sprintf(`{"name": "%s", "full_text": "%s", "color": "%s"}`, t.name, t.Text, t.Color) }