From 470acda0452016f5d29cffda2e774fa6750c13b1 Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Sun, 29 Nov 2020 18:12:02 +0100 Subject: [PATCH] add config.UseServerTime to make time tag overwrite opt-in. It will still be in tags --- client.go | 13 ++++++++----- config.go | 3 +++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/client.go b/client.go index 071dae3..90316ee 100644 --- a/client.go +++ b/client.go @@ -852,11 +852,14 @@ func (client *Client) handleSendLoop() { func (client *Client) handleEvent(event *Event) { sentCapEnd := false - // IRCv3 `server-time` - if timeTag, ok := event.Tags["time"]; ok { - serverTime, err := time.Parse(time.RFC3339Nano, timeTag) - if err == nil && serverTime.Year() > 2000 { - event.Time = serverTime + // Only use IRCv3 `server-time` to overwrite when requested. Frontends/dependents can still + // get this information. + if client.config.UseServerTime { + if timeTag, ok := event.Tags["time"]; ok { + serverTime, err := time.Parse(time.RFC3339Nano, timeTag) + if err == nil && serverTime.Year() > 2000 { + event.Time = serverTime + } } } diff --git a/config.go b/config.go index ace85ee..7ef93bf 100644 --- a/config.go +++ b/config.go @@ -37,6 +37,9 @@ type Config struct { // Auto-join on invite (bad idea). AutoJoinInvites bool `json:"autoJoinInvites"` + // Whether to use the server time tag to overwrite event time. + UseServerTime bool `json:"useServerTime"` + // Use SASL authorization if supported. SASL *SASLConfig `json:"sasl"` }