feat: add quote generation command
This commit is contained in:
@@ -2,11 +2,13 @@ package context
|
||||
|
||||
import (
|
||||
"strings"
|
||||
stdctx "context"
|
||||
|
||||
waE2E "go.mau.fi/whatsmeow/proto/waE2E"
|
||||
waTypes "go.mau.fi/whatsmeow/types"
|
||||
"go.mau.fi/whatsmeow/types/events"
|
||||
"google.golang.org/protobuf/proto"
|
||||
"go.mau.fi/whatsmeow"
|
||||
)
|
||||
|
||||
// ParseMessageText extracts text content from a message event.
|
||||
@@ -89,6 +91,68 @@ func GetQuotedStanzaID(m *waE2E.Message) string {
|
||||
}
|
||||
}
|
||||
|
||||
// GetContextInfo extracts the ContextInfo from any message type.
|
||||
func GetContextInfo(m *waE2E.Message) *waE2E.ContextInfo {
|
||||
if m == nil {
|
||||
return nil
|
||||
}
|
||||
switch {
|
||||
case m.GetExtendedTextMessage().GetContextInfo() != nil:
|
||||
return m.GetExtendedTextMessage().GetContextInfo()
|
||||
case m.GetImageMessage().GetContextInfo() != nil:
|
||||
return m.GetImageMessage().GetContextInfo()
|
||||
case m.GetVideoMessage().GetContextInfo() != nil:
|
||||
return m.GetVideoMessage().GetContextInfo()
|
||||
case m.GetDocumentMessage().GetContextInfo() != nil:
|
||||
return m.GetDocumentMessage().GetContextInfo()
|
||||
case m.GetAudioMessage().GetContextInfo() != nil:
|
||||
return m.GetAudioMessage().GetContextInfo()
|
||||
case m.GetStickerMessage().GetContextInfo() != nil:
|
||||
return m.GetStickerMessage().GetContextInfo()
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// GetQuotedText extracts text from a quoted message.
|
||||
func GetQuotedText(m *waE2E.Message) string {
|
||||
if m == nil {
|
||||
return ""
|
||||
}
|
||||
switch {
|
||||
case m.GetConversation() != "":
|
||||
return m.GetConversation()
|
||||
case m.GetExtendedTextMessage().GetText() != "":
|
||||
return m.GetExtendedTextMessage().GetText()
|
||||
case m.GetImageMessage().GetCaption() != "":
|
||||
return m.GetImageMessage().GetCaption()
|
||||
case m.GetVideoMessage().GetCaption() != "":
|
||||
return m.GetVideoMessage().GetCaption()
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
// GetContactName returns a display name for the given JID from the store.
|
||||
func GetContactName(client *whatsmeow.Client, jid waTypes.JID) string {
|
||||
if client == nil || client.Store == nil || client.Store.Contacts == nil {
|
||||
return "+" + jid.User
|
||||
}
|
||||
contact, err := client.Store.Contacts.GetContact(stdctx.Background(), jid)
|
||||
if err == nil && contact.Found {
|
||||
if contact.PushName != "" {
|
||||
return contact.PushName
|
||||
}
|
||||
if contact.FullName != "" {
|
||||
return contact.FullName
|
||||
}
|
||||
if contact.BusinessName != "" {
|
||||
return contact.BusinessName
|
||||
}
|
||||
}
|
||||
return "+" + jid.User
|
||||
}
|
||||
|
||||
|
||||
// ParseJID parses a JID string, adding @s.whatsapp.net if no server is specified.
|
||||
func ParseJID(arg string) (waTypes.JID, bool) {
|
||||
if arg == "" {
|
||||
|
||||
Reference in New Issue
Block a user