whatsappNamesNotReady = "The names of the contacts and groups have not arrived from the phone yet. They come some minutes after the link. Try again later."
)
+// WhatsAppMatch is one contact or group of whatsappFind.
+type WhatsAppMatch struct {
+ id string
+ name string
+ kind string
+}
+
// whatsappFind returns the contacts and the groups whose name contains name,
// with no regard to case and accents, as lines "ID | name | contact" or "ID |
// name | group", sorted by name. It gives at most whatsappFindMatches lines and
return whatsappFindAnswer(name, matches, read || len(names) > 0), nil
}
-// WhatsAppMatch is one contact or group of whatsappFind.
-type WhatsAppMatch struct {
- id string
- name string
- kind string
-}
-
// whatsappFold returns text in lower case with no accents and no space at its
// ends, so that names match with no regard to case and accents.
func whatsappFold(text string) string {
return strings.ToLower(strings.TrimSpace(folded))
}
-// whatsappFindAnswer returns the answer of whatsappFind for name with matches. Without
-// groups, the answer says that it has no groups.
+// whatsappFindAnswer returns the answer of whatsappFind for name with matches.
+// Without groups, the answer says that it has no groups.
func whatsappFindAnswer(name string, matches []WhatsAppMatch, groups bool) string {
slices.SortFunc(matches, func(a, b WhatsAppMatch) int {
return cmp.Or(strings.Compare(whatsappFold(a.name), whatsappFold(b.name)), strings.Compare(a.id, b.id))