Parse ident and host, rename irc.Message.Nick to Sender

This commit is contained in:
Ken-Håvard Lieng 2020-05-24 11:09:59 +02:00
parent 8829793290
commit e76beca4a0
10 changed files with 95 additions and 83 deletions

View file

@ -72,7 +72,7 @@ func connectIRC(server *storage.Server, state *State, srcIP []byte) *irc.Client
ircCfg.Password = server.ServerPassword
}
i := irc.NewClient(ircCfg)
i := irc.NewClient(&ircCfg)
i.Config.HandleNickInUse = createNickInUseHandler(i, state)
state.setIRC(server.Host, i)

View file

@ -113,11 +113,11 @@ func (i *ircHandler) dispatchMessage(msg *irc.Message) {
func (i *ircHandler) nick(msg *irc.Message) {
i.state.sendJSON("nick", Nick{
Server: i.client.Host(),
Old: msg.Nick,
Old: msg.Sender,
New: msg.LastParam(),
})
channelStore.RenameUser(msg.Nick, msg.LastParam(), i.client.Host())
channelStore.RenameUser(msg.Sender, msg.LastParam(), i.client.Host())
if i.client.Is(msg.LastParam()) {
go i.state.user.SetNick(msg.LastParam(), i.client.Host())
@ -127,14 +127,14 @@ func (i *ircHandler) nick(msg *irc.Message) {
func (i *ircHandler) join(msg *irc.Message) {
i.state.sendJSON("join", Join{
Server: i.client.Host(),
User: msg.Nick,
User: msg.Sender,
Channels: msg.Params,
})
channel := msg.Params[0]
channelStore.AddUser(msg.Nick, i.client.Host(), channel)
channelStore.AddUser(msg.Sender, i.client.Host(), channel)
if i.client.Is(msg.Nick) {
if i.client.Is(msg.Sender) {
// In case no topic is set and there's a cached one that needs to be cleared
i.client.Topic(channel)
@ -150,7 +150,7 @@ func (i *ircHandler) join(msg *irc.Message) {
func (i *ircHandler) part(msg *irc.Message) {
part := Part{
Server: i.client.Host(),
User: msg.Nick,
User: msg.Sender,
Channel: msg.Params[0],
}
@ -160,9 +160,9 @@ func (i *ircHandler) part(msg *irc.Message) {
i.state.sendJSON("part", part)
channelStore.RemoveUser(msg.Nick, i.client.Host(), part.Channel)
channelStore.RemoveUser(msg.Sender, i.client.Host(), part.Channel)
if i.client.Is(msg.Nick) {
if i.client.Is(msg.Sender) {
go i.state.user.RemoveChannel(i.client.Host(), part.Channel)
}
}
@ -196,7 +196,7 @@ func (i *ircHandler) message(msg *irc.Message) {
message := Message{
ID: betterguid.New(),
Server: i.client.Host(),
From: msg.Nick,
From: msg.Sender,
Content: msg.LastParam(),
}
target := msg.Params[0]
@ -216,18 +216,18 @@ func (i *ircHandler) message(msg *irc.Message) {
if target != "*" && !msg.IsFromServer() {
go i.state.user.LogMessage(message.ID,
i.client.Host(), msg.Nick, target, msg.LastParam())
i.client.Host(), msg.Sender, target, msg.LastParam())
}
}
func (i *ircHandler) quit(msg *irc.Message) {
i.state.sendJSON("quit", Quit{
Server: i.client.Host(),
User: msg.Nick,
User: msg.Sender,
Reason: msg.LastParam(),
})
channelStore.RemoveUserAll(msg.Nick, i.client.Host())
channelStore.RemoveUserAll(msg.Sender, i.client.Host())
}
func (i *ircHandler) info(msg *irc.Message) {
@ -248,7 +248,7 @@ func (i *ircHandler) info(msg *irc.Message) {
i.state.sendJSON("pm", Message{
Server: i.client.Host(),
From: msg.Nick,
From: msg.Sender,
Content: strings.Join(msg.Params[1:], " "),
})
}
@ -297,7 +297,7 @@ func (i *ircHandler) topic(msg *irc.Message) {
if msg.Command == irc.TOPIC {
channel = msg.Params[0]
nick = msg.Nick
nick = msg.Sender
} else {
channel = msg.Params[1]
}
@ -425,7 +425,7 @@ func (i *ircHandler) receiveDCCSend(pack *irc.DCCSend, msg *irc.Message) {
i.state.sendJSON("dcc_send", DCCSend{
Server: i.client.Host(),
From: msg.Nick,
From: msg.Sender,
Filename: pack.File,
URL: fmt.Sprintf("%s://%s/downloads/%s/%s",
i.state.String("scheme"), i.state.String("host"), i.state.user.Username, pack.File),
@ -539,5 +539,5 @@ func formatIRCError(msg *irc.Message) string {
}
func printMessage(msg *irc.Message, i *irc.Client) {
log.Println(i.GetNick()+":", msg.Prefix, msg.Command, msg.Params)
log.Println(i.GetNick()+":", msg.Sender, msg.Command, msg.Params)
}

View file

@ -54,7 +54,7 @@ func dispatchMessage(msg *irc.Message) WSResponse {
}
func dispatchMessageMulti(msg *irc.Message) chan WSResponse {
c := irc.NewClient(irc.Config{
c := irc.NewClient(&irc.Config{
Nick: "nick",
Username: "user",
Host: "host.com",
@ -74,7 +74,7 @@ func checkResponse(t *testing.T, expectedType string, expectedData interface{},
func TestHandleIRCNick(t *testing.T) {
res := dispatchMessage(&irc.Message{
Command: irc.NICK,
Nick: "old",
Sender: "old",
Params: []string{"new"},
})
@ -88,7 +88,7 @@ func TestHandleIRCNick(t *testing.T) {
func TestHandleIRCJoin(t *testing.T) {
res := dispatchMessage(&irc.Message{
Command: irc.JOIN,
Nick: "joining",
Sender: "joining",
Params: []string{"#chan"},
})
@ -102,7 +102,7 @@ func TestHandleIRCJoin(t *testing.T) {
func TestHandleIRCPart(t *testing.T) {
res := dispatchMessage(&irc.Message{
Command: irc.PART,
Nick: "parting",
Sender: "parting",
Params: []string{"#chan", "the reason"},
})
@ -115,7 +115,7 @@ func TestHandleIRCPart(t *testing.T) {
res = dispatchMessage(&irc.Message{
Command: irc.PART,
Nick: "parting",
Sender: "parting",
Params: []string{"#chan"},
})
@ -144,7 +144,7 @@ func TestHandleIRCMode(t *testing.T) {
func TestHandleIRCMessage(t *testing.T) {
res := dispatchMessage(&irc.Message{
Command: irc.PRIVMSG,
Nick: "nick",
Sender: "nick",
Params: []string{"#chan", "the message"},
})
@ -157,7 +157,7 @@ func TestHandleIRCMessage(t *testing.T) {
res = dispatchMessage(&irc.Message{
Command: irc.PRIVMSG,
Nick: "someone",
Sender: "someone",
Params: []string{"nick", "the message"},
})
@ -172,7 +172,7 @@ func TestHandleIRCMessage(t *testing.T) {
func TestHandleIRCQuit(t *testing.T) {
res := dispatchMessage(&irc.Message{
Command: irc.QUIT,
Nick: "nick",
Sender: "nick",
Params: []string{"the reason"},
})
@ -186,7 +186,7 @@ func TestHandleIRCQuit(t *testing.T) {
func TestHandleIRCWelcome(t *testing.T) {
res := dispatchMessageMulti(&irc.Message{
Command: irc.RPL_WELCOME,
Nick: "nick",
Sender: "nick",
Params: []string{"nick", "some", "text"},
})
@ -203,7 +203,7 @@ func TestHandleIRCWelcome(t *testing.T) {
}
func TestHandleIRCWhois(t *testing.T) {
c := irc.NewClient(irc.Config{
c := irc.NewClient(&irc.Config{
Nick: "nick",
Username: "user",
Host: "host.com",
@ -250,7 +250,7 @@ func TestHandleIRCTopic(t *testing.T) {
res = dispatchMessage(&irc.Message{
Command: irc.TOPIC,
Params: []string{"#chan", "the topic"},
Nick: "bob",
Sender: "bob",
})
checkResponse(t, "topic", Topic{
@ -274,7 +274,7 @@ func TestHandleIRCNoTopic(t *testing.T) {
}
func TestHandleIRCNames(t *testing.T) {
c := irc.NewClient(irc.Config{
c := irc.NewClient(&irc.Config{
Nick: "nick",
Username: "user",
Host: "host.com",
@ -303,7 +303,7 @@ func TestHandleIRCNames(t *testing.T) {
}
func TestHandleIRCMotd(t *testing.T) {
c := irc.NewClient(irc.Config{
c := irc.NewClient(&irc.Config{
Nick: "nick",
Username: "user",
Host: "host.com",
@ -333,7 +333,7 @@ func TestHandleIRCMotd(t *testing.T) {
}
func TestHandleIRCBadNick(t *testing.T) {
c := irc.NewClient(irc.Config{
c := irc.NewClient(&irc.Config{
Nick: "nick",
Username: "user",
Host: "host.com",