diff --git a/messagix/instagram.go b/messagix/instagram.go index bc181eb..00d29fe 100644 --- a/messagix/instagram.go +++ b/messagix/instagram.go @@ -229,7 +229,7 @@ func (ig *InstagramMethods) RegisterPushNotifications(endpoint string) error { return nil } -func (ig *InstagramMethods) FetchFBID(currentUser types.UserInfo, tbl *table.LSTable) (int64, error) { +func (ig *InstagramMethods) ExtractFBID(currentUser types.UserInfo, tbl *table.LSTable) (int64, error) { var newFBID int64 for _, row := range tbl.LSVerifyContactRowExists { diff --git a/pkg/connector/client.go b/pkg/connector/client.go index b60fa9e..24392e0 100644 --- a/pkg/connector/client.go +++ b/pkg/connector/client.go @@ -105,22 +105,25 @@ func (m *MetaClient) handleTableEvent(tblEvt any) { } func (m *MetaClient) Connect(ctx context.Context) error { - if m.client == nil { - log := m.login.User.Log.With().Str("component", "messagix").Logger() - client := messagix.NewClient(m.cookies, log) - m.client = client - // We have to call this before calling `Connect`, even if we don't use the result - _, _, err := m.client.LoadMessagesPage() - if err != nil { - return fmt.Errorf("failed to load messages page: %w", err) - } + log := m.login.User.Log.With().Str("component", "messagix").Logger() + + client := messagix.NewClient(m.cookies, log) + m.client = client + + _, initialTable, err := m.client.LoadMessagesPage() + if err != nil { + return fmt.Errorf("failed to load messages page: %w", err) } + m.handleTable(initialTable) + m.client.SetEventHandler(m.eventHandler) - err := m.client.Connect() + + err = m.client.Connect() if err != nil { return fmt.Errorf("failed to connect to messagix: %w", err) } + err = m.Update(ctx) if err != nil { return err diff --git a/pkg/connector/connector.go b/pkg/connector/connector.go index 5d30508..4a39ebd 100644 --- a/pkg/connector/connector.go +++ b/pkg/connector/connector.go @@ -4,8 +4,6 @@ import ( "context" "maunium.net/go/mautrix/bridgev2" - - "go.mau.fi/mautrix-meta/messagix" ) type MetaConnector struct { @@ -79,17 +77,10 @@ func (m *MetaConnector) Start(ctx context.Context) error { } func (m *MetaConnector) LoadUserLogin(ctx context.Context, login *bridgev2.UserLogin) error { - return m.LoadUserLoginWithClient(ctx, login, nil) -} - -func (m *MetaConnector) LoadUserLoginWithClient(ctx context.Context, login *bridgev2.UserLogin, client *messagix.Client) error { cli, err := NewMetaClient(ctx, m, login) if err != nil { return err } - if client != nil { - cli.client = client - } login.Client = cli return nil } diff --git a/pkg/connector/login.go b/pkg/connector/login.go index 8773ff4..f6e1856 100644 --- a/pkg/connector/login.go +++ b/pkg/connector/login.go @@ -119,7 +119,7 @@ func (m *MetaCookieLogin) SubmitCookies(ctx context.Context, strCookies map[stri id := user.GetFBID() if client.Instagram != nil { - id, err = client.Instagram.FetchFBID(user, tbl) + id, err = client.Instagram.ExtractFBID(user, tbl) if err != nil { return nil, fmt.Errorf("failed to fetch FBID: %w", err) } @@ -148,11 +148,7 @@ func (m *MetaCookieLogin) SubmitCookies(ctx context.Context, strCookies map[stri "cookies": c, }, }, - }, &bridgev2.NewLoginParams{ - LoadUserLogin: func(ctx context.Context, login *bridgev2.UserLogin) error { - return m.Main.LoadUserLoginWithClient(ctx, login, client) - }, - }) + }, nil) if err != nil { return nil, fmt.Errorf("failed to save new login: %w", err) }