Relay INVITE to IRC listener users as an INVITE line (closes #147)
check / check (push) Canceled after 0s

An invite for an IRC listener user arrived as a server NOTICE that did
not name the inviter, so no IRC client treated it as an invite. The
relay now sends it as an INVITE line from the inviter, with the channel
taken from the message body. The IRC listener now queues the INVITE
with the channel as its body, as the HTTP API already did, so an invite
from either transport has the same shape. The README's IRC listener
section says how an invite arrives.

Model: opus-5-5
This commit is contained in:
2026-10-21 04:17:05 +00:00
parent 3cbdac7bda
commit 882bab2e1c
4 changed files with 48 additions and 8 deletions
+6 -3
View File
@@ -358,16 +358,19 @@ func (c *Conn) deliverKickMsg(
}
}
// deliverInviteMsg sends an INVITE notification.
// deliverInviteMsg sends an INVITE line from the inviter
// for the channel named in text.
func (c *Conn) deliverInviteMsg(
_ *db.IRCMessage,
msg *db.IRCMessage,
text string,
) {
c.mu.Lock()
nick := c.nick
c.mu.Unlock()
c.sendFromServer("NOTICE", nick, text)
prefix := msg.From + "!" + msg.From + "@*"
c.send(FormatMessage(prefix, "INVITE", nick, text))
}
// deliverWallops sends a WALLOPS notification.