diff --git a/bridge/whatsapp/whatsapp.go b/bridge/whatsapp/whatsapp.go index 85df6a8d..ae634d6a 100644 --- a/bridge/whatsapp/whatsapp.go +++ b/bridge/whatsapp/whatsapp.go @@ -113,6 +113,12 @@ func (b *Bwhatsapp) Connect() error { return fmt.Errorf("error on update of contacts: %v", err) } + // see https://github.com/Rhymen/go-whatsapp/issues/137#issuecomment-480316013 + for len(b.conn.Store.Contacts) == 0 { + b.conn.Contacts() // nolint:errcheck + <-time.After(1 * time.Second) + } + // map all the users for id, contact := range b.conn.Store.Contacts { if !isGroupJid(id) && id != "status@broadcast" { @@ -192,6 +198,12 @@ func isGroupJid(identifier string) bool { func (b *Bwhatsapp) JoinChannel(channel config.ChannelInfo) error { byJid := isGroupJid(channel.Name) + // see https://github.com/Rhymen/go-whatsapp/issues/137#issuecomment-480316013 + for len(b.conn.Store.Contacts) == 0 { + b.conn.Contacts() // nolint:errcheck + <-time.After(1 * time.Second) + } + // verify if we are member of the given group if byJid { // channel.Name specifies static group jID, not the name