feat: BIG changes

* use commands constants
* use a separate goroutine to read from connection
* refactor connection reading and ui updating
* add sidepanel for users in channel
* other cleanups
This commit is contained in:
2022-01-09 04:30:22 +02:00
parent 1168a2a4dd
commit 8a7e1568ae
11 changed files with 280 additions and 97 deletions
+7 -5
View File
@@ -51,14 +51,16 @@ func parseTags(rawTags string) Tags {
return tags
}
func ParseIRCMessage(line string) IRCMessage {
func ParseIRCMessage(line string) (IRCMessage, bool) {
ircMessage := IRCMessage{}
multipleSpacesRegex := regexp.MustCompile("[^\\S\\t]+")
trailingParamRegex := regexp.MustCompile("[^\\S\\t]+:")
whitespaceRegex := regexp.MustCompile("^[^\\S\\t]+$")
if len(line) <= 0 {
return IRCMessage{}
// TODO: do something here ???
// log.Println("empty message")
return IRCMessage{}, false
}
if line[0] == '@' {
@@ -94,12 +96,12 @@ func ParseIRCMessage(line string) IRCMessage {
}
// if we have 1 param and it starts with a colon
if len(parameters) == 1 && parameters[0][0] == ':' {
parameters[0] = parameters[0][1:]
if len(params) == 1 && params[0][0] == ':' {
parameters[0] = params[0][1:]
}
ircMessage.Parameters = parameters
}
return ircMessage
return ircMessage, true
}