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
+}