Make initial chat sync count configurable
This commit is contained in:
parent
498f210e10
commit
7981a11bd9
5 changed files with 10 additions and 4 deletions
|
@ -36,7 +36,8 @@ type BridgeConfig struct {
|
|||
MessageErrorNotices bool `yaml:"message_error_notices"`
|
||||
PortalMessageBuffer int `yaml:"portal_message_buffer"`
|
||||
|
||||
SyncDirectChatList bool `yaml:"sync_direct_chat_list"`
|
||||
SyncDirectChatList bool `yaml:"sync_direct_chat_list"`
|
||||
InitialChatSyncCount int `yaml:"initial_chat_sync_count"`
|
||||
|
||||
DoublePuppetServerMap map[string]string `yaml:"double_puppet_server_map"`
|
||||
DoublePuppetAllowDiscovery bool `yaml:"double_puppet_allow_discovery"`
|
||||
|
|
|
@ -43,6 +43,7 @@ func DoUpgrade(helper *up.Helper) {
|
|||
helper.Copy(up.Bool, "bridge", "message_error_notices")
|
||||
helper.Copy(up.Int, "bridge", "portal_message_buffer")
|
||||
helper.Copy(up.Bool, "bridge", "sync_direct_chat_list")
|
||||
helper.Copy(up.Int, "bridge", "initial_chat_sync_count")
|
||||
helper.Copy(up.Map, "bridge", "double_puppet_server_map")
|
||||
helper.Copy(up.Bool, "bridge", "double_puppet_allow_discovery")
|
||||
helper.Copy(up.Map, "bridge", "login_shared_secret_map")
|
||||
|
|
|
@ -124,6 +124,8 @@ bridge:
|
|||
# Note that updating the m.direct event is not atomic (except with mautrix-asmux)
|
||||
# and is therefore prone to race conditions.
|
||||
sync_direct_chat_list: false
|
||||
# Number of chats to sync when connecting to Google Messages.
|
||||
initial_chat_sync_count: 25
|
||||
|
||||
# Servers to always allow double puppeting from
|
||||
double_puppet_server_map:
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"go.mau.fi/mautrix-gmessages/libgm/gmproto"
|
||||
)
|
||||
|
||||
func (c *Client) ListConversations(count int64, folder gmproto.ListConversationsRequest_Folder) (*gmproto.ListConversationsResponse, error) {
|
||||
func (c *Client) ListConversations(count int, folder gmproto.ListConversationsRequest_Folder) (*gmproto.ListConversationsResponse, error) {
|
||||
msgType := gmproto.MessageType_BUGLE_MESSAGE
|
||||
if !c.conversationsFetchedOnce {
|
||||
msgType = gmproto.MessageType_BUGLE_ANNOTATION
|
||||
|
@ -12,7 +12,7 @@ func (c *Client) ListConversations(count int64, folder gmproto.ListConversations
|
|||
}
|
||||
return typedResponse[*gmproto.ListConversationsResponse](c.sessionHandler.sendMessageWithParams(SendMessageParams{
|
||||
Action: gmproto.ActionType_LIST_CONVERSATIONS,
|
||||
Data: &gmproto.ListConversationsRequest{Count: count, Folder: folder},
|
||||
Data: &gmproto.ListConversationsRequest{Count: int64(count), Folder: folder},
|
||||
MessageType: msgType,
|
||||
}))
|
||||
}
|
||||
|
|
4
user.go
4
user.go
|
@ -654,11 +654,13 @@ func (user *User) aggressiveSetActive() {
|
|||
}
|
||||
|
||||
func (user *User) fetchAndSyncConversations() {
|
||||
resp, err := user.Client.ListConversations(25, gmproto.ListConversationsRequest_INBOX)
|
||||
user.zlog.Info().Msg("Fetching conversation list")
|
||||
resp, err := user.Client.ListConversations(user.bridge.Config.Bridge.InitialChatSyncCount, gmproto.ListConversationsRequest_INBOX)
|
||||
if err != nil {
|
||||
user.zlog.Err(err).Msg("Failed to get conversation list")
|
||||
return
|
||||
}
|
||||
user.zlog.Info().Int("count", len(resp.GetConversations())).Msg("Syncing conversations")
|
||||
for _, conv := range resp.GetConversations() {
|
||||
user.syncConversation(conv)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue