ref: 32956bab7e8c63735cc6a36ab2f8ce5e7997003b
parent: f673c823d1e980cbe5d0da95c7f1a0beef6fcf2b
author: penny <penny@limitedideas.org>
date: Sun Oct 5 13:04:21 EDT 2025
templates implemented
--- a/main.go
+++ b/main.go
@@ -259,12 +259,9 @@
index = lastindex
}
formatter := &StatusFormatter{hc: hc, status: postItem, postContext: hc.ctxref}- var sb strings.Builder
- sb.WriteString(fmt.Sprintf("%s> %s %s", index, formatter.username(), formatter.statusContent()))- sb.WriteString(formatter.mediaDescriptions())
- sb.WriteString(formatter.detailLine())
- sb.WriteString("\n")- fmt.Print(hyphenate(sb.String()))
+ templater := newStatusTemplateRenderer(formatter)
+ line, _ := templater.render(fmt.Sprintf("%s> $username $content $media_descriptions\n$detail_line", index))+ fmt.Print(line)
return
case "like":
_, err := client.Favourite(context.Background(), postItem.ID)
--- a/renderer.go
+++ b/renderer.go
@@ -97,6 +97,15 @@
return dl.detailLine()
}
+// Formatted <username> stringer
+type username struct {+ *StatusFormatter
+}
+
+func (usr *username) String() string {+ return usr.username()
+}
+
func (hc *Hellclient) renderStatus(content string, index string) (string, map[string]string) {doc, err := html.Parse(strings.NewReader(content))
if err != nil {--- a/templater.go
+++ b/templater.go
@@ -2,6 +2,7 @@
import (
"fmt"
+ "os"
)
type templateDefs struct {@@ -17,9 +18,23 @@
func newStatusTemplateRenderer(sf *StatusFormatter) *templateRenderer { return &templateRenderer{ tempdefs: []*templateDefs{- {key: "status", stringer: &statusContent{sf}},+ {key: "content", stringer: &statusContent{sf}}, {key: "media_descriptions", stringer: &mediaDescriptions{sf}}, {key: "detail_line", stringer: &detailLine{sf}},+ {key: "username", stringer: &username{sf}},},
}
+}
+
+func (tr *templateRenderer) render(template string) (string, error) {+ expandMap := func(key string) string {+ for item := range tr.tempdefs {+ if key == tr.tempdefs[item].key {+ return tr.tempdefs[item].stringer.String()
+ }
+ }
+ return fmt.Sprintf("%KEY_NOT_FOUND:%s", key)+ }
+
+ return hyphenate(os.Expand(template, expandMap)), nil
}
--
⑨