- Timestamp:
- Feb 25, 2022, 8:05:10 PM (3 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/msgstore_fs.go
r784 r787 81 81 type fsMessageStore struct { 82 82 root string 83 user *User 83 84 84 85 // Write-only files used by Append … … 89 90 var _ chatHistoryMessageStore = (*fsMessageStore)(nil) 90 91 91 func newFSMessageStore(root , username string) *fsMessageStore {92 func newFSMessageStore(root string, user *User) *fsMessageStore { 92 93 return &fsMessageStore{ 93 root: filepath.Join(root, escapeFilename(username)), 94 root: filepath.Join(root, escapeFilename(user.Username)), 95 user: user, 94 96 files: make(map[string]*fsMessageStoreFile), 95 97 } … … 251 253 } 252 254 253 func parseMessage(line, entity string, ref time.Time, events bool) (*irc.Message, time.Time, error) {255 func (ms *fsMessageStore) parseMessage(line string, network *Network, entity string, ref time.Time, events bool) (*irc.Message, time.Time, error) { 254 256 var hour, minute, second int 255 257 _, err := fmt.Sscanf(line, "[%02d:%02d:%02d] ", &hour, &minute, &second) … … 373 375 374 376 prefix = &irc.Prefix{Name: sender} 377 if entity == sender { 378 // This is a direct message from a user to us. We don't store own 379 // our nickname in the logs, so grab it from the network settings. 380 // Not very accurate since this may not match our nick at the time 381 // the message was received, but we can't do a lot better. 382 entity = GetNick(ms.user, network) 383 } 375 384 params = []string{entity, text} 376 385 } … … 414 423 415 424 for sc.Scan() { 416 msg, t, err := parseMessage(sc.Text(), entity, ref, events)425 msg, t, err := ms.parseMessage(sc.Text(), network, entity, ref, events) 417 426 if err != nil { 418 427 return nil, err … … 460 469 sc := bufio.NewScanner(f) 461 470 for sc.Scan() && len(history) < limit { 462 msg, t, err := parseMessage(sc.Text(), entity, ref, events)471 msg, t, err := ms.parseMessage(sc.Text(), network, entity, ref, events) 463 472 if err != nil { 464 473 return nil, err -
trunk/user.go
r781 r787 452 452 var msgStore messageStore 453 453 if logPath := srv.Config().LogPath; logPath != "" { 454 msgStore = newFSMessageStore(logPath, record .Username)454 msgStore = newFSMessageStore(logPath, record) 455 455 } else { 456 456 msgStore = newMemoryMessageStore()
Note:
See TracChangeset
for help on using the changeset viewer.