Browse Source

fix read markers not being reloaded on restart

tags/v2.10.0-rc2
Shivaram Lingamneni 2 years ago
parent
commit
2b86660e5c
2 changed files with 12 additions and 10 deletions
  1. 4
    3
      irc/accounts.go
  2. 8
    7
      irc/client.go

+ 4
- 3
irc/accounts.go View File

@@ -130,7 +130,8 @@ func (am *AccountManager) createAlwaysOnClients(config *Config) {
130 130
 			am.server.AddAlwaysOnClient(
131 131
 				account,
132 132
 				am.loadChannels(accountName),
133
-				am.loadLastSeen(accountName),
133
+				am.loadTimeMap(keyAccountLastSeen, accountName),
134
+				am.loadTimeMap(keyAccountReadMarkers, accountName),
134 135
 				am.loadModes(accountName),
135 136
 				am.loadRealname(accountName),
136 137
 			)
@@ -675,8 +676,8 @@ func (am *AccountManager) saveTimeMap(account, key string, timeMap map[string]ti
675 676
 	}
676 677
 }
677 678
 
678
-func (am *AccountManager) loadLastSeen(account string) (lastSeen map[string]time.Time) {
679
-	key := fmt.Sprintf(keyAccountLastSeen, account)
679
+func (am *AccountManager) loadTimeMap(baseKey, account string) (lastSeen map[string]time.Time) {
680
+	key := fmt.Sprintf(baseKey, account)
680 681
 	var lsText string
681 682
 	am.server.store.Update(func(tx *buntdb.Tx) error {
682 683
 		lsText, _ = tx.Get(key)

+ 8
- 7
irc/client.go View File

@@ -389,7 +389,7 @@ func (server *Server) RunClient(conn IRCConn) {
389 389
 	client.run(session)
390 390
 }
391 391
 
392
-func (server *Server) AddAlwaysOnClient(account ClientAccount, channelToStatus map[string]alwaysOnChannelStatus, lastSeen map[string]time.Time, uModes modes.Modes, realname string) {
392
+func (server *Server) AddAlwaysOnClient(account ClientAccount, channelToStatus map[string]alwaysOnChannelStatus, lastSeen, readMarkers map[string]time.Time, uModes modes.Modes, realname string) {
393 393
 	now := time.Now().UTC()
394 394
 	config := server.Config()
395 395
 	if lastSeen == nil && account.Settings.AutoreplayMissed {
@@ -407,12 +407,13 @@ func (server *Server) AddAlwaysOnClient(account ClientAccount, channelToStatus m
407 407
 	}
408 408
 
409 409
 	client := &Client{
410
-		lastSeen:   lastSeen,
411
-		lastActive: now,
412
-		channels:   make(ChannelSet),
413
-		ctime:      now,
414
-		languages:  server.Languages().Default(),
415
-		server:     server,
410
+		lastSeen:    lastSeen,
411
+		readMarkers: readMarkers,
412
+		lastActive:  now,
413
+		channels:    make(ChannelSet),
414
+		ctime:       now,
415
+		languages:   server.Languages().Default(),
416
+		server:      server,
416 417
 
417 418
 		username:        username,
418 419
 		cloakedHostname: cloakedHostname,

Loading…
Cancel
Save