all repos — honk @ 9160eabd159a3d1f54b90625765ddd7be8e8d7a2

my fork of honk

custom lingo for those who don't like honking
Ted Unangst tedu@tedunangst.com
Fri, 25 Sep 2020 22:37:28 -0400
commit

9160eabd159a3d1f54b90625765ddd7be8e8d7a2

parent

8f557f8374725f7df73656083cd92d45d907896a

4 files changed, 55 insertions(+), 19 deletions(-)

jump to
M admin.goadmin.go

@@ -43,12 +43,16 @@ rmcup := esc + "[?1049l"

var avatarColors string getconfig("avatarcolors", &avatarColors) + loadLingo() - messages := []*struct { - name string - label string - text string - }{ + type adminfield struct { + name string + label string + text string + oneline bool + } + + messages := []*adminfield{ { name: "servermsg", label: "server",

@@ -65,10 +69,19 @@ label: "login",

text: string(loginMsg), }, { - name: "avatarcolors", - label: "avatar colors (4 RGBA hex numbers)", - text: string(avatarColors), + name: "avatarcolors", + label: "avatar colors (4 RGBA hex numbers)", + text: string(avatarColors), + oneline: true, }, + } + for _, l := range []string{"honked", "bonked", "honked back", "qonked", "evented"} { + messages = append(messages, &adminfield{ + name: "lingo-" + strings.ReplaceAll(l, " ", ""), + label: "lingo for " + l, + text: relingo[l], + oneline: true, + }) } cursel := 0

@@ -145,16 +158,19 @@ return lines

} msglineno := func(idx int) int { - off := 2 + off := 1 if idx == -1 { return off } for i, m := range messages { - off += 2 + off += 1 if i == idx { return off } - off += linecount(m.text) + if !m.oneline { + off += 1 + off += linecount(m.text) + } } off += 2 return off

@@ -170,12 +186,14 @@ movecursor(4, line)

label := messages[idx].label if idx == cursel { label = reverse(label) - if editing { - label = magenta(label) - } } + label = magenta(label) text := forscreen(messages[idx].text) - stdout.WriteString(fmt.Sprintf("%s\n %s", label, text)) + if messages[idx].oneline { + stdout.WriteString(fmt.Sprintf("%s\t %s", label, text)) + } else { + stdout.WriteString(fmt.Sprintf("%s\n %s", label, text)) + } } drawscreen := func() {

@@ -202,20 +220,20 @@

selectnext := func() { if cursel < len(messages)-1 { movecursor(4, msglineno(cursel)) - stdout.WriteString(messages[cursel].label) + stdout.WriteString(magenta(messages[cursel].label)) cursel++ movecursor(4, msglineno(cursel)) - stdout.WriteString(reverse(messages[cursel].label)) + stdout.WriteString(reverse(magenta(messages[cursel].label))) stdout.Flush() } } selectprev := func() { if cursel > 0 { movecursor(4, msglineno(cursel)) - stdout.WriteString(messages[cursel].label) + stdout.WriteString(magenta(messages[cursel].label)) cursel-- movecursor(4, msglineno(cursel)) - stdout.WriteString(reverse(messages[cursel].label)) + stdout.WriteString(reverse(magenta(messages[cursel].label))) stdout.Flush() } }

@@ -231,6 +249,9 @@ switch c {

case '\x1b': break loop case '\n': + if m.oneline { + break loop + } m.text += "\n" drawscreen() case 127:
M docs/changelog.txtdocs/changelog.txt

@@ -2,6 +2,8 @@ changelog

=== next +- Custom lingo for those who don't like honking. + + Better support for rich text bios. + Follow and unfollow should work a little better.
M fun.gofun.go

@@ -51,6 +51,17 @@ allowedclasses["al"] = true

allowedclasses["dl"] = true } +var relingo = make(map[string]string) + +func loadLingo() { + for _, l := range []string{"honked", "bonked", "honked back", "qonked", "evented"} { + v := l + k := "lingo-" + strings.ReplaceAll(l, " ", "") + getconfig(k, &v) + relingo[l] = v + } +} + func reverbolate(userid int64, honks []*Honk) { var user *WhatAbout somenumberedusers.Get(userid, &user)

@@ -162,6 +173,7 @@ renderflags(h)

h.HTPrecis = template.HTML(h.Precis) h.HTML = template.HTML(h.Noise) + h.What = relingo[h.What] } }
M web.goweb.go

@@ -2346,6 +2346,7 @@ go enditall()

go redeliverator() go tracker() go bgmonitor() + loadLingo() w100 := wait100ms() readviews = templates.Load(debugMode,