From 64b899ac8944f5bd94dfddcefeac8c0f4141be62 Mon Sep 17 00:00:00 2001 From: Wim Date: Sun, 22 Nov 2020 21:42:54 +0100 Subject: [PATCH] Retry until we have contacts (whatsapp). Fixes #1122 (#1304) --- bridge/whatsapp/whatsapp.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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