Changeset 666 in code
- Timestamp:
- Nov 3, 2021, 3:37:01 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r665 r666 1296 1296 // Fast-forward history to last message 1297 1297 targetCM := net.casemap(target) 1298 lastID, err := dc.user.msgStore.LastMsgID( net, targetCM, time.Now())1298 lastID, err := dc.user.msgStore.LastMsgID(&net.Network, targetCM, time.Now()) 1299 1299 if err != nil { 1300 1300 dc.logger.Printf("failed to get last message ID: %v", err) … … 1331 1331 limit := 4000 1332 1332 targetCM := net.casemap(target) 1333 history, err := dc.user.msgStore.LoadLatestID( net, targetCM, msgID, limit)1333 history, err := dc.user.msgStore.LoadLatestID(&net.Network, targetCM, msgID, limit) 1334 1334 if err != nil { 1335 1335 dc.logger.Printf("failed to send backlog for %q: %v", target, err) … … 2338 2338 switch subcommand { 2339 2339 case "BEFORE": 2340 history, err = store.LoadBeforeTime( network, entity, bounds[0], time.Time{}, limit, eventPlayback)2340 history, err = store.LoadBeforeTime(&network.Network, entity, bounds[0], time.Time{}, limit, eventPlayback) 2341 2341 case "AFTER": 2342 history, err = store.LoadAfterTime( network, entity, bounds[0], time.Now(), limit, eventPlayback)2342 history, err = store.LoadAfterTime(&network.Network, entity, bounds[0], time.Now(), limit, eventPlayback) 2343 2343 case "BETWEEN": 2344 2344 if bounds[0].Before(bounds[1]) { 2345 history, err = store.LoadAfterTime( network, entity, bounds[0], bounds[1], limit, eventPlayback)2345 history, err = store.LoadAfterTime(&network.Network, entity, bounds[0], bounds[1], limit, eventPlayback) 2346 2346 } else { 2347 history, err = store.LoadBeforeTime( network, entity, bounds[0], bounds[1], limit, eventPlayback)2347 history, err = store.LoadBeforeTime(&network.Network, entity, bounds[0], bounds[1], limit, eventPlayback) 2348 2348 } 2349 2349 case "TARGETS": 2350 2350 // TODO: support TARGETS in multi-upstream mode 2351 targets, err := store.ListTargets( network, bounds[0], bounds[1], limit, eventPlayback)2351 targets, err := store.ListTargets(&network.Network, bounds[0], bounds[1], limit, eventPlayback) 2352 2352 if err != nil { 2353 2353 dc.logger.Printf("failed fetching targets for chathistory: %v", err) -
trunk/msgstore.go
r665 r666 17 17 // date. The message ID returned may not refer to a valid message, but can be 18 18 // used in history queries. 19 LastMsgID(network * network, entity string, t time.Time) (string, error)19 LastMsgID(network *Network, entity string, t time.Time) (string, error) 20 20 // LoadLatestID queries the latest non-event messages for the given network, 21 21 // entity and date, up to a count of limit messages, sorted from oldest to newest. 22 LoadLatestID(network * network, entity, id string, limit int) ([]*irc.Message, error)23 Append(network * network, entity string, msg *irc.Message) (id string, err error)22 LoadLatestID(network *Network, entity, id string, limit int) ([]*irc.Message, error) 23 Append(network *Network, entity string, msg *irc.Message) (id string, err error) 24 24 } 25 25 … … 38 38 // both excluded. end may be before or after start. 39 39 // If events is false, only PRIVMSG/NOTICE messages are considered. 40 ListTargets(network * network, start, end time.Time, limit int, events bool) ([]chatHistoryTarget, error)40 ListTargets(network *Network, start, end time.Time, limit int, events bool) ([]chatHistoryTarget, error) 41 41 // LoadBeforeTime loads up to limit messages before start down to end. The 42 42 // returned messages must be between and excluding the provided bounds. 43 43 // end is before start. 44 44 // If events is false, only PRIVMSG/NOTICE messages are considered. 45 LoadBeforeTime(network * network, entity string, start, end time.Time, limit int, events bool) ([]*irc.Message, error)45 LoadBeforeTime(network *Network, entity string, start, end time.Time, limit int, events bool) ([]*irc.Message, error) 46 46 // LoadBeforeTime loads up to limit messages after start up to end. The 47 47 // returned messages must be between and excluding the provided bounds. 48 48 // end is after start. 49 49 // If events is false, only PRIVMSG/NOTICE messages are considered. 50 LoadAfterTime(network * network, entity string, start, end time.Time, limit int, events bool) ([]*irc.Message, error)50 LoadAfterTime(network *Network, entity string, start, end time.Time, limit int, events bool) ([]*irc.Message, error) 51 51 } 52 52 -
trunk/msgstore_fs.go
r665 r666 95 95 } 96 96 97 func (ms *fsMessageStore) logPath(network * network, entity string, t time.Time) string {97 func (ms *fsMessageStore) logPath(network *Network, entity string, t time.Time) string { 98 98 year, month, day := t.Date() 99 99 filename := fmt.Sprintf("%04d-%02d-%02d.log", year, month, day) … … 102 102 103 103 // nextMsgID queries the message ID for the next message to be written to f. 104 func nextFSMsgID(network * network, entity string, t time.Time, f *os.File) (string, error) {104 func nextFSMsgID(network *Network, entity string, t time.Time, f *os.File) (string, error) { 105 105 offset, err := f.Seek(0, io.SeekEnd) 106 106 if err != nil { … … 110 110 } 111 111 112 func (ms *fsMessageStore) LastMsgID(network * network, entity string, t time.Time) (string, error) {112 func (ms *fsMessageStore) LastMsgID(network *Network, entity string, t time.Time) (string, error) { 113 113 p := ms.logPath(network, entity, t) 114 114 fi, err := os.Stat(p) … … 121 121 } 122 122 123 func (ms *fsMessageStore) Append(network * network, entity string, msg *irc.Message) (string, error) {123 func (ms *fsMessageStore) Append(network *Network, entity string, msg *irc.Message) (string, error) { 124 124 s := formatMessage(msg) 125 125 if s == "" { … … 389 389 } 390 390 391 func (ms *fsMessageStore) parseMessagesBefore(network * network, entity string, ref time.Time, end time.Time, events bool, limit int, afterOffset int64) ([]*irc.Message, error) {391 func (ms *fsMessageStore) parseMessagesBefore(network *Network, entity string, ref time.Time, end time.Time, events bool, limit int, afterOffset int64) ([]*irc.Message, error) { 392 392 path := ms.logPath(network, entity, ref) 393 393 f, err := os.Open(path) … … 445 445 } 446 446 447 func (ms *fsMessageStore) parseMessagesAfter(network * network, entity string, ref time.Time, end time.Time, events bool, limit int) ([]*irc.Message, error) {447 func (ms *fsMessageStore) parseMessagesAfter(network *Network, entity string, ref time.Time, end time.Time, events bool, limit int) ([]*irc.Message, error) { 448 448 path := ms.logPath(network, entity, ref) 449 449 f, err := os.Open(path) … … 477 477 } 478 478 479 func (ms *fsMessageStore) LoadBeforeTime(network * network, entity string, start time.Time, end time.Time, limit int, events bool) ([]*irc.Message, error) {479 func (ms *fsMessageStore) LoadBeforeTime(network *Network, entity string, start time.Time, end time.Time, limit int, events bool) ([]*irc.Message, error) { 480 480 start = start.In(time.Local) 481 481 end = end.In(time.Local) … … 502 502 } 503 503 504 func (ms *fsMessageStore) LoadAfterTime(network * network, entity string, start time.Time, end time.Time, limit int, events bool) ([]*irc.Message, error) {504 func (ms *fsMessageStore) LoadAfterTime(network *Network, entity string, start time.Time, end time.Time, limit int, events bool) ([]*irc.Message, error) { 505 505 start = start.In(time.Local) 506 506 end = end.In(time.Local) … … 526 526 } 527 527 528 func (ms *fsMessageStore) LoadLatestID(network * network, entity, id string, limit int) ([]*irc.Message, error) {528 func (ms *fsMessageStore) LoadLatestID(network *Network, entity, id string, limit int) ([]*irc.Message, error) { 529 529 var afterTime time.Time 530 530 var afterOffset int64 … … 570 570 } 571 571 572 func (ms *fsMessageStore) ListTargets(network * network, start, end time.Time, limit int, events bool) ([]chatHistoryTarget, error) {572 func (ms *fsMessageStore) ListTargets(network *Network, start, end time.Time, limit int, events bool) ([]chatHistoryTarget, error) { 573 573 start = start.In(time.Local) 574 574 end = end.In(time.Local) … … 645 645 } 646 646 647 func (ms *fsMessageStore) RenameNetwork(oldNet, newNet * network) error {647 func (ms *fsMessageStore) RenameNetwork(oldNet, newNet *Network) error { 648 648 oldDir := filepath.Join(ms.root, escapeFilename(oldNet.GetName())) 649 649 newDir := filepath.Join(ms.root, escapeFilename(newNet.GetName())) -
trunk/msgstore_memory.go
r665 r666 55 55 } 56 56 57 func (ms *memoryMessageStore) get(network * network, entity string) *messageRingBuffer {57 func (ms *memoryMessageStore) get(network *Network, entity string) *messageRingBuffer { 58 58 k := ringBufferKey{networkID: network.ID, entity: entity} 59 59 if rb, ok := ms.buffers[k]; ok { … … 65 65 } 66 66 67 func (ms *memoryMessageStore) LastMsgID(network * network, entity string, t time.Time) (string, error) {67 func (ms *memoryMessageStore) LastMsgID(network *Network, entity string, t time.Time) (string, error) { 68 68 var seq uint64 69 69 k := ringBufferKey{networkID: network.ID, entity: entity} … … 74 74 } 75 75 76 func (ms *memoryMessageStore) Append(network * network, entity string, msg *irc.Message) (string, error) {76 func (ms *memoryMessageStore) Append(network *Network, entity string, msg *irc.Message) (string, error) { 77 77 switch msg.Command { 78 78 case "PRIVMSG", "NOTICE": … … 92 92 } 93 93 94 func (ms *memoryMessageStore) LoadLatestID(network * network, entity, id string, limit int) ([]*irc.Message, error) {94 func (ms *memoryMessageStore) LoadLatestID(network *Network, entity, id string, limit int) ([]*irc.Message, error) { 95 95 _, _, seq, err := parseMemoryMsgID(id) 96 96 if err != nil { -
trunk/upstream.go
r664 r666 1788 1788 // message ID in delivery receipts, so that we can send the new message 1789 1789 // in the backlog if an offline client reconnects. 1790 lastID, err := uc.user.msgStore.LastMsgID( uc.network, entityCM, time.Now())1790 lastID, err := uc.user.msgStore.LastMsgID(&uc.network.Network, entityCM, time.Now()) 1791 1791 if err != nil { 1792 1792 uc.logger.Printf("failed to log message: failed to get last message ID: %v", err) … … 1799 1799 } 1800 1800 1801 msgID, err := uc.user.msgStore.Append( uc.network, entityCM, msg)1801 msgID, err := uc.user.msgStore.Append(&uc.network.Network, entityCM, msg) 1802 1802 if err != nil { 1803 1803 uc.logger.Printf("failed to log message: %v", err) -
trunk/user.go
r652 r666 262 262 if net.user.msgStore != nil { 263 263 nameCM := net.casemap(ch.Name) 264 lastID, err := net.user.msgStore.LastMsgID( net, nameCM, time.Now())264 lastID, err := net.user.msgStore.LastMsgID(&net.Network, nameCM, time.Now()) 265 265 if err != nil { 266 266 net.logger.Printf("failed to get last message ID for channel %q: %v", ch.Name, err) … … 860 860 fsMsgStore, isFS := u.msgStore.(*fsMessageStore) 861 861 if isFS && updatedNetwork.GetName() != network.GetName() { 862 if err := fsMsgStore.RenameNetwork( network, updatedNetwork); err != nil {862 if err := fsMsgStore.RenameNetwork(&network.Network, &updatedNetwork.Network); err != nil { 863 863 network.logger.Printf("failed to update FS message store network name to %q: %v", updatedNetwork.GetName(), err) 864 864 }
Note:
See TracChangeset
for help on using the changeset viewer.