|
|
|
@ -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) { |
|
|
|
MustLogin(waCli) |
|
|
|
|
|
|
|
if !isOnWhatsapp(waCli, jid) { |
|
|
|
return types.JID{}, pkgError.InvalidJID(fmt.Sprintf("Phone %s is not on whatsapp", jid)) |
|
|
|
} |
|
|
|
|
|
|
|
return ParseJID(jid) |
|
|
|
} |
|
|
|
|
|
|
|
|