package whatsapp import ( "context" "go.mau.fi/whatsmeow" "go.mau.fi/whatsmeow/types" ) // NormalizeJIDFromLID converts @lid JIDs to their corresponding @s.whatsapp.net JIDs // Returns the original JID if it's not an @lid or if LID lookup fails func NormalizeJIDFromLID(ctx context.Context, jid types.JID, client *whatsmeow.Client) types.JID { // Only process @lid JIDs if jid.Server != "lid" { return jid } // Safety check if client == nil || client.Store == nil || client.Store.LIDs == nil { log.Warnf("Cannot resolve LID %s: client not available", jid.String()) return jid } // Attempt to get the phone number for this LID pn, err := client.Store.LIDs.GetPNForLID(ctx, jid) if err != nil { log.Debugf("Failed to resolve LID %s to phone number: %v", jid.String(), err) return jid } // If we got a valid phone number, use it if !pn.IsEmpty() { log.Debugf("Resolved LID %s to phone number %s", jid.String(), pn.String()) return pn } // Fallback to original JID return jid }