From 243308b140b00cd680c1360b090f9d38915a4a94 Mon Sep 17 00:00:00 2001 From: David Florness Date: Sat, 23 Jan 2021 14:37:23 -0500 Subject: [PATCH] Move event hook setup to msg.go --- cmd/tallyard/main.go | 54 +------------------------------------------- election/msg.go | 33 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 53 deletions(-) diff --git a/cmd/tallyard/main.go b/cmd/tallyard/main.go index de7ebf7..0b350cf 100644 --- a/cmd/tallyard/main.go +++ b/cmd/tallyard/main.go @@ -4,7 +4,6 @@ import ( "fmt" "os" - log "github.com/sirupsen/logrus" "maunium.net/go/mautrix" "maunium.net/go/mautrix/event" "maunium.net/go/mautrix/id" @@ -15,10 +14,6 @@ import ( "tallyard.xyz/ui" ) -func DebugCB(source mautrix.EventSource, evt *event.Event) { - log.Debugf("%[5]d: <%[1]s> %[4]s (%[2]s/%[3]s)\n", evt.Sender, evt.Type.String(), evt.ID, evt.Content.AsMessage().Body, source) -} - func electionFilter(localUserID id.UserID) *mautrix.Filter { return &mautrix.Filter{ Room: mautrix.RoomFilter{ @@ -59,54 +54,7 @@ func main() { syncer := client.Syncer.(*mautrix.DefaultSyncer) syncer.OnEvent(client.Store.(*mautrix.InMemoryStore).UpdateState) - syncer.OnEventType(election.CreateElectionMessage, func(source mautrix.EventSource, evt *event.Event) { - DebugCB(source, evt) - if evt.Unsigned.RedactedBecause != nil { - log.Debug("redacted") - return - } - election.OnCreateElectionMessage(evt, elections) - }) - syncer.OnEventType(election.JoinElectionMessage, func(source mautrix.EventSource, evt *event.Event) { - DebugCB(source, evt) - if evt.Unsigned.RedactedBecause != nil { - log.Debug("redacted") - return - } - election.OnJoinElectionMessage(client, evt, elections) - }) - syncer.OnEventType(election.StartElectionMessage, func(source mautrix.EventSource, evt *event.Event) { - DebugCB(source, evt) - if evt.Unsigned.RedactedBecause != nil { - log.Debug("redacted") - return - } - election.OnStartElectionMessage(client, evt, elections) - }) - syncer.OnEventType(election.EvalMessage, func(source mautrix.EventSource, evt *event.Event) { - DebugCB(source, evt) - if evt.Unsigned.RedactedBecause != nil { - log.Debug("redacted") - return - } - election.OnEvalMessage(client, evt, elections) - }) - syncer.OnEventType(election.SumMessage, func(source mautrix.EventSource, evt *event.Event) { - DebugCB(source, evt) - if evt.Unsigned.RedactedBecause != nil { - log.Debug("redacted") - return - } - election.OnSumMessage(client, evt, elections) - }) - syncer.OnEventType(election.ResultMessage, func(source mautrix.EventSource, evt *event.Event) { - DebugCB(source, evt) - if evt.Unsigned.RedactedBecause != nil { - log.Debug("redacted") - return - } - election.OnResultMessage(client, evt, elections) - }) + election.SetupEventHooks(client, syncer, elections) go func() { res, err := client.CreateFilter(electionFilter(client.UserID)) diff --git a/election/msg.go b/election/msg.go index c456d1a..b21aa10 100644 --- a/election/msg.go +++ b/election/msg.go @@ -87,6 +87,39 @@ func init() { event.TypeMap[ResultMessage] = reflect.TypeOf(ResultMessageContent{}) } +func SetupEventHooks(client *mautrix.Client, syncer mautrix.ExtensibleSyncer, elections *ElectionsMap) { + wrapper := func(f func(*event.Event)) func(mautrix.EventSource, *event.Event) { + return func(source mautrix.EventSource, evt *event.Event) { + log.Debugf("%[5]d: <%[1]s> %[4]s (%[2]s/%[3]s)\n", + evt.Sender, evt.Type.String(), evt.ID, + evt.Content.AsMessage().Body, source) + if evt.Unsigned.RedactedBecause != nil { + log.Debugf("%s redacted\n", evt.ID.String()) + return + } + f(evt) + } + } + syncer.OnEventType(CreateElectionMessage, wrapper(func(evt *event.Event) { + OnCreateElectionMessage(evt, elections) + })) + syncer.OnEventType(JoinElectionMessage, wrapper(func(evt *event.Event) { + OnJoinElectionMessage(client, evt, elections) + })) + syncer.OnEventType(StartElectionMessage, wrapper(func(evt *event.Event) { + OnStartElectionMessage(client, evt, elections) + })) + syncer.OnEventType(EvalMessage, wrapper(func(evt *event.Event) { + OnEvalMessage(client, evt, elections) + })) + syncer.OnEventType(SumMessage, wrapper(func(evt *event.Event) { + OnSumMessage(client, evt, elections) + })) + syncer.OnEventType(ResultMessage, wrapper(func(evt *event.Event) { + OnResultMessage(client, evt, elections) + })) +} + func OnCreateElectionMessage(evt *event.Event, elections *ElectionsMap) { // TODO: check version content, ok := evt.Content.Parsed.(*CreateElectionContent) -- 2.38.4