package util import ( "regexp" "strings" ) type Message struct { User *User Text string Output func() string } func NewMessage(t string) *Message { m := new(Message) msg_user := regexp.MustCompile("<[^>]+>") tmpUser := msg_user.FindString(t) tmpUser = strings.Replace(tmpUser, "<", "", -1) tmpUser = strings.Replace(tmpUser, ">", "", -1) m.User = FindUser(tmpUser, true) m.Text = t if m.User.Index != -1 && m.User.Name != "" { res := strings.Split(t, "<"+m.User.Name+"> ") if len(res) > 0 { m.Text = res[1] } } m.Output = func() string { if m.User.Index != -1 && m.User.Name != "" { return "<" + m.User.Name + "> " + m.Text } else { return m.Text } } return m }