Merge branch 'release/v0.6.0' into features

This commit is contained in:
Svilen Markov
2024-08-29 20:06:40 +01:00
24 changed files with 580 additions and 113 deletions

View File

@@ -113,6 +113,7 @@ func (w *Widgets) UnmarshalYAML(node *yaml.Node) error {
type Widget interface {
Initialize() error
RequiresUpdate(*time.Time) bool
SetProviders(*Providers)
Update(context.Context)
Render() template.HTML
GetType() string
@@ -132,6 +133,7 @@ const (
type widgetBase struct {
ID uint64 `yaml:"-"`
Providers *Providers `yaml:"-"`
Type string `yaml:"type"`
Title string `yaml:"title"`
TitleURL string `yaml:"title-url"`
@@ -148,6 +150,10 @@ type widgetBase struct {
HideHeader bool `yaml:"-"`
}
type Providers struct {
AssetResolver func(string) string
}
func (w *widgetBase) RequiresUpdate(now *time.Time) bool {
if w.cacheType == cacheTypeInfinite {
return false
@@ -184,6 +190,10 @@ func (w *widgetBase) GetType() string {
return w.Type
}
func (w *widgetBase) SetProviders(providers *Providers) {
w.Providers = providers
}
func (w *widgetBase) render(data any, t *template.Template) template.HTML {
w.templateBuffer.Reset()
err := t.Execute(&w.templateBuffer, data)