@@ 131,62 131,6 @@ func OnCreateElectionMessage(evt *event.Event, elections *ElectionsMap) {
evt.Timestamp, evt.Sender, evt.RoomID, content.Title))
}
-func getElection(client *mautrix.Client, roomID id.RoomID, createEventId id.EventID, elections *ElectionsMap) *Election {
- el, exists := elections.GetOk(createEventId)
- if exists {
- return el
- }
- createEvent, err := client.GetEvent(roomID, createEventId)
- if err != nil {
- log.Warnf("couldn't retrieve election create event: %s", err)
- return nil
- }
- if createEvent.Unsigned.RedactedBecause != nil {
- log.Debug("election redacted")
- return nil
- }
- err = createEvent.Content.ParseRaw(CreateElectionMessage)
- if err != nil {
- log.Errorf("couldn't parse create event: %s", err)
- return nil
- }
- OnCreateElectionMessage(createEvent, elections)
- el, exists = elections.GetOk(createEventId)
- if !exists {
- log.Warn("couldn't create election")
- return nil
- }
- return el
-}
-
-func getVoter(client *mautrix.Client, roomID id.RoomID, joinEventId id.EventID, elections *ElectionsMap) *Voter {
- voter, exists := elections.Joins[joinEventId]
- if exists {
- return voter
- }
- joinEvent, err := client.GetEvent(roomID, joinEventId)
- if err != nil {
- log.Warnf("couldn't retrieve join event: %s", err)
- return nil
- }
- if joinEvent.Unsigned.RedactedBecause != nil {
- log.Debug("join redacted")
- return nil
- }
- err = joinEvent.Content.ParseRaw(JoinElectionMessage)
- if err != nil {
- log.Errorf("couldn't parse join event: %s", err)
- return nil
- }
- OnJoinElectionMessage(client, joinEvent, elections)
- voter, exists = elections.Joins[joinEventId]
- if !exists {
- log.Warn("couldn't find voter")
- return nil
- }
- return voter
-}
-
func OnJoinElectionMessage(client *mautrix.Client, evt *event.Event, elections *ElectionsMap) {
content, ok := evt.Content.Parsed.(*JoinElectionContent)
if !ok {
@@ 351,3 295,59 @@ func OnResultMessage(client *mautrix.Client, evt *event.Event, elections *Electi
result := new(big.Int).SetBytes(bytes)
voter.Result = result
}
+
+func getElection(client *mautrix.Client, roomID id.RoomID, createEventId id.EventID, elections *ElectionsMap) *Election {
+ el, exists := elections.GetOk(createEventId)
+ if exists {
+ return el
+ }
+ createEvent, err := client.GetEvent(roomID, createEventId)
+ if err != nil {
+ log.Warnf("couldn't retrieve election create event: %s", err)
+ return nil
+ }
+ if createEvent.Unsigned.RedactedBecause != nil {
+ log.Debug("election redacted")
+ return nil
+ }
+ err = createEvent.Content.ParseRaw(CreateElectionMessage)
+ if err != nil {
+ log.Errorf("couldn't parse create event: %s", err)
+ return nil
+ }
+ OnCreateElectionMessage(createEvent, elections)
+ el, exists = elections.GetOk(createEventId)
+ if !exists {
+ log.Warn("couldn't create election")
+ return nil
+ }
+ return el
+}
+
+func getVoter(client *mautrix.Client, roomID id.RoomID, joinEventId id.EventID, elections *ElectionsMap) *Voter {
+ voter, exists := elections.Joins[joinEventId]
+ if exists {
+ return voter
+ }
+ joinEvent, err := client.GetEvent(roomID, joinEventId)
+ if err != nil {
+ log.Warnf("couldn't retrieve join event: %s", err)
+ return nil
+ }
+ if joinEvent.Unsigned.RedactedBecause != nil {
+ log.Debug("join redacted")
+ return nil
+ }
+ err = joinEvent.Content.ParseRaw(JoinElectionMessage)
+ if err != nil {
+ log.Errorf("couldn't parse join event: %s", err)
+ return nil
+ }
+ OnJoinElectionMessage(client, joinEvent, elections)
+ voter, exists = elections.Joins[joinEventId]
+ if !exists {
+ log.Warn("couldn't find voter")
+ return nil
+ }
+ return voter
+}