c.Add(Command{
Prefix: "/timestamp",
- Help: "Timestamps after 30min of inactivity.",
+ Help: "Prefix messages with a timestamp.",
Handler: func(room *Room, msg message.CommandMsg) error {
u := msg.From()
cfg := u.Config()
// HandleMsg will render the message to the screen, blocking.
func (u *User) HandleMsg(m Message) error {
u.mu.Lock()
- cfg := u.config
- lastMsg := u.lastMsg
u.lastMsg = m.Timestamp()
- injectTimestamp := !lastMsg.IsZero() && cfg.Timestamp && u.lastMsg.Sub(lastMsg) > timestampTimeout
u.mu.Unlock()
-
- if injectTimestamp {
- // Inject a timestamp at most once every timestampTimeout between message intervals
- ts := NewSystemMsg(fmt.Sprintf("Timestamp: %s", m.Timestamp().UTC().Format(timestampLayout)), u)
- if err := u.writeMsg(ts); err != nil {
- return err
- }
- }
-
return u.writeMsg(m)
}