mirror of
https://github.com/ergochat/ergo.git
synced 2025-12-20 02:00:11 -08:00
add persistence for user metadata
This commit is contained in:
parent
f91d1d94f6
commit
0ce9016098
3 changed files with 80 additions and 3 deletions
|
|
@ -428,7 +428,7 @@ func (server *Server) RunClient(conn IRCConn) {
|
|||
client.run(session)
|
||||
}
|
||||
|
||||
func (server *Server) AddAlwaysOnClient(account ClientAccount, channelToStatus map[string]alwaysOnChannelStatus, lastSeen, readMarkers map[string]time.Time, uModes modes.Modes, realname string, pushSubscriptions []storedPushSubscription) {
|
||||
func (server *Server) AddAlwaysOnClient(account ClientAccount, channelToStatus map[string]alwaysOnChannelStatus, lastSeen, readMarkers map[string]time.Time, uModes modes.Modes, realname string, pushSubscriptions []storedPushSubscription, metadata map[string]string) {
|
||||
now := time.Now().UTC()
|
||||
config := server.Config()
|
||||
if lastSeen == nil && account.Settings.AutoreplayMissed {
|
||||
|
|
@ -513,6 +513,10 @@ func (server *Server) AddAlwaysOnClient(account ClientAccount, channelToStatus m
|
|||
}
|
||||
}
|
||||
client.rebuildPushSubscriptionCache()
|
||||
|
||||
if len(metadata) != 0 {
|
||||
client.metadata = metadata
|
||||
}
|
||||
}
|
||||
|
||||
func (client *Client) resizeHistory(config *Config) {
|
||||
|
|
@ -1850,6 +1854,7 @@ const (
|
|||
IncludeUserModes
|
||||
IncludeRealname
|
||||
IncludePushSubscriptions
|
||||
IncludeMetadata
|
||||
)
|
||||
|
||||
func (client *Client) markDirty(dirtyBits uint) {
|
||||
|
|
@ -1931,6 +1936,9 @@ func (client *Client) performWrite(additionalDirtyBits uint) {
|
|||
if (dirtyBits & IncludePushSubscriptions) != 0 {
|
||||
client.server.accounts.savePushSubscriptions(account, client.getPushSubscriptions(true))
|
||||
}
|
||||
if (dirtyBits & IncludeMetadata) != 0 {
|
||||
client.server.accounts.saveMetadata(account, client.ListMetadata())
|
||||
}
|
||||
}
|
||||
|
||||
// Blocking store; see Channel.Store and Socket.BlockingWrite
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue