From d6d5e440ac163315443a878e79b08b79ba67ec85 Mon Sep 17 00:00:00 2001 From: Techno Freak <83376337+freak12techno@users.noreply.github.com> Date: Fri, 4 Nov 2022 22:27:35 +0300 Subject: [PATCH] chore: move telegram mutes response to templates (#18) * chore: move telegram mutes response to templates * chore: remove old code --- telegram.go | 29 +++++++++-------------------- templates/telegram/mutes.html | 8 ++++++++ types.go | 4 ++++ utils.go | 11 +++++++++++ 4 files changed, 32 insertions(+), 20 deletions(-) create mode 100644 templates/telegram/mutes.html create mode 100644 utils.go diff --git a/telegram.go b/telegram.go index eda7571..5aa884a 100644 --- a/telegram.go +++ b/telegram.go @@ -174,29 +174,18 @@ func (reporter *TelegramReporter) HandleListMutes(c tele.Context) error { Str("text", c.Text()). Msg("Got list mutes query") - var sb strings.Builder - sb.WriteString("Active mutes:\n\n") - - mutesCount := 0 - - for _, mute := range reporter.MutesManager.Mutes.Mutes { - if mute.IsExpired() { - continue - } - - mutesCount++ - - sb.WriteString(fmt.Sprintf( - "Chain: %s\nProposal ID: %s\nExpires: %s\n\n", - mute.Chain, mute.ProposalID, mute.Expires, - )) - } + mutes := Filter(reporter.MutesManager.Mutes.Mutes, func(m Mute) bool { + return !m.IsExpired() + }) - if mutesCount == 0 { - sb.WriteString("No active mutes.") + template, _ := reporter.GetTemplate("mutes") + var buffer bytes.Buffer + if err := template.Execute(&buffer, mutes); err != nil { + reporter.Logger.Error().Err(err).Msg("Error rendering votes template") + return err } - return reporter.BotReply(c, sb.String()) + return reporter.BotReply(c, buffer.String()) } func (reporter *TelegramReporter) HandleProposals(c tele.Context) error { diff --git a/templates/telegram/mutes.html b/templates/telegram/mutes.html new file mode 100644 index 0000000..eb818a6 --- /dev/null +++ b/templates/telegram/mutes.html @@ -0,0 +1,8 @@ +{{- if eq (len .) 0 }} +No active mutes. +{{- end }} +{{ range . }} +Chain: {{ .Chain }} +Proposal ID: {{ .ProposalID }} +Expires: {{ .GetExpirationTime }} +{{ end }} \ No newline at end of file diff --git a/types.go b/types.go index 33caee4..0e5a99d 100644 --- a/types.go +++ b/types.go @@ -151,6 +151,10 @@ func (m *Mutes) IsMuted(chain string, proposalID string) bool { return false } +func (m Mute) GetExpirationTime() string { + return m.Expires.Format(time.RFC3339Nano) +} + func (m *Mutes) AddMute(mute Mute) { for index, muteInRange := range m.Mutes { if mute.Chain == muteInRange.Chain && mute.ProposalID == muteInRange.ProposalID { diff --git a/utils.go b/utils.go new file mode 100644 index 0000000..3c71909 --- /dev/null +++ b/utils.go @@ -0,0 +1,11 @@ +package main + +func Filter[T any](slice []T, f func(T) bool) []T { + var n []T + for _, e := range slice { + if f(e) { + n = append(n, e) + } + } + return n +}