Browse Source

feat: auto detect whatsapp account before send

pull/119/head
Aldino Kemal 2 years ago
parent
commit
cf3f59a53b
  1. 23
      src/pkg/whatsapp/whatsapp.go

23
src/pkg/whatsapp/whatsapp.go

@ -116,8 +116,31 @@ func ParseJID(arg string) (types.JID, error) {
} }
} }
func isOnWhatsapp(waCli *whatsmeow.Client, jid string) bool {
// only check if the jid a user with @s.whatsapp.net
if strings.Contains(jid, "@s.whatsapp.net") {
data, err := waCli.IsOnWhatsApp([]string{jid})
if err != nil {
panic(pkgError.InvalidJID(err.Error()))
}
for _, v := range data {
if !v.IsIn {
return false
}
}
}
return true
}
func ValidateJidWithLogin(waCli *whatsmeow.Client, jid string) (types.JID, error) { func ValidateJidWithLogin(waCli *whatsmeow.Client, jid string) (types.JID, error) {
MustLogin(waCli) MustLogin(waCli)
if !isOnWhatsapp(waCli, jid) {
return types.JID{}, pkgError.InvalidJID(fmt.Sprintf("Phone %s is not on whatsapp", jid))
}
return ParseJID(jid) return ParseJID(jid)
} }

Loading…
Cancel
Save