Split up getMembershipEventContent()
This commit is contained in:
		@@ -78,6 +78,45 @@ func ParseMessage(matrix ifc.MatrixContainer, room *rooms.Room, evt *gomatrix.Ev
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getMembershipChangeMessage(evt *gomatrix.Event, membership, prevMembership, senderDisplayname, displayname, prevDisplayname string) (sender string, text tstring.TString) {
 | 
				
			||||||
 | 
						switch membership {
 | 
				
			||||||
 | 
						case "invite":
 | 
				
			||||||
 | 
							sender = "---"
 | 
				
			||||||
 | 
							text = tstring.NewColorTString(fmt.Sprintf("%s invited %s.", senderDisplayname, displayname), tcell.ColorGreen)
 | 
				
			||||||
 | 
							text.Colorize(0, len(senderDisplayname), widget.GetHashColor(evt.Sender))
 | 
				
			||||||
 | 
							text.Colorize(len(senderDisplayname)+len(" invited "), len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
				
			||||||
 | 
						case "join":
 | 
				
			||||||
 | 
							sender = "-->"
 | 
				
			||||||
 | 
							text = tstring.NewColorTString(fmt.Sprintf("%s joined the room.", displayname), tcell.ColorGreen)
 | 
				
			||||||
 | 
							text.Colorize(0, len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
				
			||||||
 | 
						case "leave":
 | 
				
			||||||
 | 
							sender = "<--"
 | 
				
			||||||
 | 
							if evt.Sender != *evt.StateKey {
 | 
				
			||||||
 | 
								if prevMembership == "ban" {
 | 
				
			||||||
 | 
									text = tstring.NewColorTString(fmt.Sprintf("%s unbanned %s", senderDisplayname, displayname), tcell.ColorGreen)
 | 
				
			||||||
 | 
									text.Colorize(len(senderDisplayname)+len(" unbanned "), len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									reason, _ := evt.Content["reason"].(string)
 | 
				
			||||||
 | 
									text = tstring.NewColorTString(fmt.Sprintf("%s kicked %s: %s", senderDisplayname, displayname, reason), tcell.ColorRed)
 | 
				
			||||||
 | 
									text.Colorize(len(senderDisplayname)+len(" kicked "), len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								text.Colorize(0, len(senderDisplayname), widget.GetHashColor(evt.Sender))
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								if displayname == *evt.StateKey {
 | 
				
			||||||
 | 
									displayname = prevDisplayname
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								text = tstring.NewColorTString(fmt.Sprintf("%s left the room.", displayname), tcell.ColorRed)
 | 
				
			||||||
 | 
								text.Colorize(0, len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						case "ban":
 | 
				
			||||||
 | 
							reason, _ := evt.Content["reason"].(string)
 | 
				
			||||||
 | 
							text = tstring.NewColorTString(fmt.Sprintf("%s banned %s: %s", senderDisplayname, displayname, reason), tcell.ColorRed)
 | 
				
			||||||
 | 
							text.Colorize(len(senderDisplayname)+len(" banned "), len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
				
			||||||
 | 
							text.Colorize(0, len(senderDisplayname), widget.GetHashColor(evt.Sender))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func getMembershipEventContent(room *rooms.Room, evt *gomatrix.Event) (sender string, text tstring.TString) {
 | 
					func getMembershipEventContent(room *rooms.Room, evt *gomatrix.Event) (sender string, text tstring.TString) {
 | 
				
			||||||
	member := room.GetMember(evt.Sender)
 | 
						member := room.GetMember(evt.Sender)
 | 
				
			||||||
	senderDisplayname := evt.Sender
 | 
						senderDisplayname := evt.Sender
 | 
				
			||||||
@@ -102,41 +141,7 @@ func getMembershipEventContent(room *rooms.Room, evt *gomatrix.Event) (sender st
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if membership != prevMembership {
 | 
						if membership != prevMembership {
 | 
				
			||||||
		switch membership {
 | 
							sender, text = getMembershipChangeMessage(evt, membership, prevMembership, senderDisplayname, displayname, prevDisplayname)
 | 
				
			||||||
		case "invite":
 | 
					 | 
				
			||||||
			sender = "---"
 | 
					 | 
				
			||||||
			text = tstring.NewColorTString(fmt.Sprintf("%s invited %s.", senderDisplayname, displayname), tcell.ColorGreen)
 | 
					 | 
				
			||||||
			text.Colorize(0, len(senderDisplayname), widget.GetHashColor(evt.Sender))
 | 
					 | 
				
			||||||
			text.Colorize(len(senderDisplayname)+len(" invited "), len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
					 | 
				
			||||||
		case "join":
 | 
					 | 
				
			||||||
			sender = "-->"
 | 
					 | 
				
			||||||
			text = tstring.NewColorTString(fmt.Sprintf("%s joined the room.", displayname), tcell.ColorGreen)
 | 
					 | 
				
			||||||
			text.Colorize(0, len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
					 | 
				
			||||||
		case "leave":
 | 
					 | 
				
			||||||
			sender = "<--"
 | 
					 | 
				
			||||||
			if evt.Sender != *evt.StateKey {
 | 
					 | 
				
			||||||
				if prevMembership == "ban" {
 | 
					 | 
				
			||||||
					text = tstring.NewColorTString(fmt.Sprintf("%s unbanned %s", senderDisplayname, displayname), tcell.ColorGreen)
 | 
					 | 
				
			||||||
					text.Colorize(len(senderDisplayname)+len(" unbanned "), len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
					 | 
				
			||||||
				} else {
 | 
					 | 
				
			||||||
					reason, _ := evt.Content["reason"].(string)
 | 
					 | 
				
			||||||
					text = tstring.NewColorTString(fmt.Sprintf("%s kicked %s: %s", senderDisplayname, displayname, reason), tcell.ColorRed)
 | 
					 | 
				
			||||||
					text.Colorize(len(senderDisplayname)+len(" kicked "), len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				text.Colorize(0, len(senderDisplayname), widget.GetHashColor(evt.Sender))
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				if displayname == *evt.StateKey {
 | 
					 | 
				
			||||||
					displayname = prevDisplayname
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				text = tstring.NewColorTString(fmt.Sprintf("%s left the room.", displayname), tcell.ColorRed)
 | 
					 | 
				
			||||||
				text.Colorize(0, len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		case "ban":
 | 
					 | 
				
			||||||
			reason, _ := evt.Content["reason"].(string)
 | 
					 | 
				
			||||||
			text = tstring.NewColorTString(fmt.Sprintf("%s banned %s: %s", senderDisplayname, displayname, reason), tcell.ColorRed)
 | 
					 | 
				
			||||||
			text.Colorize(len(senderDisplayname)+len(" banned "), len(displayname), widget.GetHashColor(*evt.StateKey))
 | 
					 | 
				
			||||||
			text.Colorize(0, len(senderDisplayname), widget.GetHashColor(evt.Sender))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	} else if displayname != prevDisplayname {
 | 
						} else if displayname != prevDisplayname {
 | 
				
			||||||
		sender = "---"
 | 
							sender = "---"
 | 
				
			||||||
		text = tstring.NewColorTString(fmt.Sprintf("%s changed their display name to %s.", prevDisplayname, displayname), tcell.ColorGreen)
 | 
							text = tstring.NewColorTString(fmt.Sprintf("%s changed their display name to %s.", prevDisplayname, displayname), tcell.ColorGreen)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user