Changeset 516 in code for trunk/msgstore_fs.go
- Timestamp:
- May 18, 2021, 8:44:10 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/msgstore_fs.go
r515 r516 258 258 } 259 259 260 func (ms *fsMessageStore) parseMessagesBefore(network *network, entity string, ref time.Time, limit int, afterOffset int64) ([]*irc.Message, error) {260 func (ms *fsMessageStore) parseMessagesBefore(network *network, entity string, ref time.Time, end time.Time, limit int, afterOffset int64) ([]*irc.Message, error) { 261 261 path := ms.logPath(network, entity, ref) 262 262 f, err := os.Open(path) … … 285 285 if err != nil { 286 286 return nil, err 287 } else if msg == nil {287 } else if msg == nil || !t.After(end) { 288 288 continue 289 289 } else if !t.Before(ref) { … … 314 314 } 315 315 316 func (ms *fsMessageStore) parseMessagesAfter(network *network, entity string, ref time.Time, limit int) ([]*irc.Message, error) {316 func (ms *fsMessageStore) parseMessagesAfter(network *network, entity string, ref time.Time, end time.Time, limit int) ([]*irc.Message, error) { 317 317 path := ms.logPath(network, entity, ref) 318 318 f, err := os.Open(path) … … 333 333 } else if msg == nil || !t.After(ref) { 334 334 continue 335 } else if !t.Before(end) { 336 break 335 337 } 336 338 … … 344 346 } 345 347 346 func (ms *fsMessageStore) LoadBeforeTime(network *network, entity string, ttime.Time, limit int) ([]*irc.Message, error) {348 func (ms *fsMessageStore) LoadBeforeTime(network *network, entity string, start time.Time, end time.Time, limit int) ([]*irc.Message, error) { 347 349 history := make([]*irc.Message, limit) 348 350 remaining := limit 349 351 tries := 0 350 for remaining > 0 && tries < fsMessageStoreMaxTries {351 buf, err := ms.parseMessagesBefore(network, entity, t, remaining, -1)352 for remaining > 0 && tries < fsMessageStoreMaxTries && end.Before(start) { 353 buf, err := ms.parseMessagesBefore(network, entity, start, end, remaining, -1) 352 354 if err != nil { 353 355 return nil, err … … 360 362 copy(history[remaining-len(buf):], buf) 361 363 remaining -= len(buf) 362 year, month, day := t.Date()363 t = time.Date(year, month, day, 0, 0, 0, 0,t.Location()).Add(-1)364 year, month, day := start.Date() 365 start = time.Date(year, month, day, 0, 0, 0, 0, start.Location()).Add(-1) 364 366 } 365 367 … … 367 369 } 368 370 369 func (ms *fsMessageStore) LoadAfterTime(network *network, entity string, ttime.Time, limit int) ([]*irc.Message, error) {371 func (ms *fsMessageStore) LoadAfterTime(network *network, entity string, start time.Time, end time.Time, limit int) ([]*irc.Message, error) { 370 372 var history []*irc.Message 371 373 remaining := limit 372 374 tries := 0 373 now := time.Now() 374 for remaining > 0 && tries < fsMessageStoreMaxTries && t.Before(now) { 375 buf, err := ms.parseMessagesAfter(network, entity, t, remaining) 375 for remaining > 0 && tries < fsMessageStoreMaxTries && start.Before(end) { 376 buf, err := ms.parseMessagesAfter(network, entity, start, end, remaining) 376 377 if err != nil { 377 378 return nil, err … … 384 385 history = append(history, buf...) 385 386 remaining -= len(buf) 386 year, month, day := t.Date()387 t = time.Date(year, month, day+1, 0, 0, 0, 0,t.Location())387 year, month, day := start.Date() 388 start = time.Date(year, month, day+1, 0, 0, 0, 0, start.Location()) 388 389 } 389 390 return history, nil … … 421 422 } 422 423 423 buf, err := ms.parseMessagesBefore(network, entity, t, remaining, offset)424 buf, err := ms.parseMessagesBefore(network, entity, t, time.Time{}, remaining, offset) 424 425 if err != nil { 425 426 return nil, err
Note:
See TracChangeset
for help on using the changeset viewer.