Browse Source

add config.UseServerTime to make time tag overwrite opt-in. It will still be in tags

master
Gisle Aune 3 years ago
parent
commit
470acda045
  1. 13
      client.go
  2. 3
      config.go

13
client.go

@ -852,11 +852,14 @@ func (client *Client) handleSendLoop() {
func (client *Client) handleEvent(event *Event) { func (client *Client) handleEvent(event *Event) {
sentCapEnd := false 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
}
} }
} }

3
config.go

@ -37,6 +37,9 @@ type Config struct {
// Auto-join on invite (bad idea). // Auto-join on invite (bad idea).
AutoJoinInvites bool `json:"autoJoinInvites"` AutoJoinInvites bool `json:"autoJoinInvites"`
// Whether to use the server time tag to overwrite event time.
UseServerTime bool `json:"useServerTime"`
// Use SASL authorization if supported. // Use SASL authorization if supported.
SASL *SASLConfig `json:"sasl"` SASL *SASLConfig `json:"sasl"`
} }

Loading…
Cancel
Save