1
0
Fork 0
forked from External/ergo

consolidate some time-setting code

This commit is contained in:
Shivaram Lingamneni 2019-06-13 02:24:14 -04:00
parent 34f11ddb97
commit 8dca545264
2 changed files with 14 additions and 18 deletions

View file

@ -1160,12 +1160,7 @@ func (session *Session) sendFromClientInternal(blocking bool, serverTime time.Ti
msg.SetTag("msgid", msgid)
}
// attach server-time
if session.capabilities.Has(caps.ServerTime) {
if serverTime.IsZero() {
serverTime = time.Now().UTC()
}
msg.SetTag("time", serverTime.Format(IRCv3TimestampFormat))
}
session.setTimeTag(&msg, serverTime)
return session.SendRawMessage(msg, blocking)
}
@ -1246,12 +1241,19 @@ func (client *Client) Send(tags map[string]string, prefix string, command string
func (session *Session) Send(tags map[string]string, prefix string, command string, params ...string) (err error) {
msg := ircmsg.MakeMessage(tags, prefix, command, params...)
if session.capabilities.Has(caps.ServerTime) && !msg.HasTag("time") {
msg.SetTag("time", time.Now().UTC().Format(IRCv3TimestampFormat))
}
session.setTimeTag(&msg, time.Time{})
return session.SendRawMessage(msg, false)
}
func (session *Session) setTimeTag(msg *ircmsg.IrcMessage, serverTime time.Time) {
if session.capabilities.Has(caps.ServerTime) && !msg.HasTag("time") {
if serverTime.IsZero() {
serverTime = time.Now()
}
msg.SetTag("time", serverTime.UTC().Format(IRCv3TimestampFormat))
}
}
// Notice sends the client a notice from the server.
func (client *Client) Notice(text string) {
client.Send(nil, client.server.name, "NOTICE", client.Nick(), text)