### Install HyperMeow Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Use the go get command to install the latest commit from the main branch. ```bash go get github.com/polymorfa/hypermeow@main ``` -------------------------------- ### Configure PostgresArrayWrapper Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store/sqlstore Example of setting the PostgresArrayWrapper when using the lib/pq driver. ```go whatsmeow.PostgresArrayWrapper = pq.Array ``` -------------------------------- ### Handle Media Retry Logic Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Example implementation for handling 404 or 410 media download errors and processing the subsequent retry event. ```go var mediaRetryCache map[types.MessageID]*waE2E.ImageMessage evt, err := cli.ParseWebMessage(chatJID, historyMsg.GetMessage()) imageMsg := evt.Message.GetImageMessage() // replace this with the part of the message you want to download data, err := cli.Download(imageMsg) if errors.Is(err, whatsmeow.ErrMediaDownloadFailedWith404) || errors.Is(err, whatsmeow.ErrMediaDownloadFailedWith410) { err = cli.SendMediaRetryReceipt(&evt.Info, imageMsg.GetMediaKey()) // You need to store the event data somewhere as it's necessary for handling the retry response. mediaRetryCache[evt.Info.ID] = imageMsg } ``` ```go func eventHandler(rawEvt any) { switch evt := rawEvt.(type) { case *events.MediaRetry: imageMsg := mediaRetryCache[evt.MessageID] retryData, err := whatsmeow.DecryptMediaRetryNotification(evt, imageMsg.GetMediaKey()) if err != nil || retryData.GetResult != waMmsRetry.MediaRetryNotification_SUCCESS { return } // Use the new path to download the attachment imageMsg.DirectPath = retryData.DirectPath data, err := cli.Download(imageMsg) // Alternatively, you can use cli.DownloadMediaWithPath and provide the individual fields manually. } } ``` -------------------------------- ### Initialize SQLStore Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store/sqlstore Creates a new SQLStore instance. Prefer using Container.NewDevice or Container.GetDevice. ```go func NewSQLStore(c *Container, jid types.JID) *SQLStore ``` -------------------------------- ### GetSubGroups Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the subgroups of the given community. ```go func (cli *Client) GetSubGroups(ctx context.Context, community types.JID) ([]*types.GroupLinkTarget, error) ``` -------------------------------- ### Initialize Container Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store/sqlstore Methods to initialize a new SQL database container. ```go func New(ctx context.Context, dialect, address string, log waLog.Logger) (*Container, error) ``` ```go container, err := sqlstore.New(context.Background(), "sqlite3", "file:yoursqlitefile.db?_foreign_keys=on", nil) ``` -------------------------------- ### Initialize Container with Existing DB Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store/sqlstore Methods to wrap an existing SQL connection in a Container. ```go func NewWithDB(db *sql.DB, dialect string, log waLog.Logger) *Container ``` ```go db, err := sql.Open("sqlite3", "file:yoursqlitefile.db?_foreign_keys=on") if err != nil { panic(err) } container := sqlstore.NewWithDB(db, "sqlite3", nil) ``` ```go container := sqlstore.NewWithDB(...) err := container.Upgrade() ``` ```go func NewWithWrappedDB(wrapped *dbutil.Database, log waLog.Logger) *Container ``` -------------------------------- ### GetNewsletterMessages Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets messages in a WhatsApp channel. ```go func (cli *Client) GetNewsletterMessages(ctx context.Context, jid types.JID, params *GetNewsletterMessagesParams) ([]*types.NewsletterMessage, error) ``` -------------------------------- ### Initialize argo Package Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/argo Initializes the package state. ```go func Init() error ``` -------------------------------- ### Get device LID Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Returns the LID of the device. ```go func (device *Device) GetLID() types.JID ``` -------------------------------- ### Initialize WhatsApp Client Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Initializes a new client instance using a device store. A SQL-backed store is commonly used for persistence. ```go func NewClient(deviceStore *store.Device, log waLog.Logger) *Client ``` ```go container, err := sqlstore.New(context.Background(), "sqlite3", "file:yoursqlitefile.db?_foreign_keys=on", nil) if err != nil { panic(err) } // If you want multiple sessions, remember their JIDs and use .GetDevice(jid) or .GetAllDevices() instead. deviceStore, err := container.GetFirstDevice() if err != nil { panic(err) } client := whatsmeow.NewClient(deviceStore, nil) ``` -------------------------------- ### Get device JID Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Returns the JID of the device. ```go func (device *Device) GetJID() types.JID ``` -------------------------------- ### GetNewsletterInfo Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the info of a newsletter that you're joined to. ```go func (cli *Client) GetNewsletterInfo(ctx context.Context, jid types.JID) (*types.NewsletterMetadata, error) ``` -------------------------------- ### GetLinkedGroupsParticipants Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets all the participants in the groups of the given community. ```go func (cli *Client) GetLinkedGroupsParticipants(ctx context.Context, community types.JID) ([]types.JID, error) ``` -------------------------------- ### GetBlocklist Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the list of users that this user has blocked. ```APIDOC ## func (*Client) GetBlocklist ### Description GetBlocklist gets the list of users that this user has blocked. ### Signature `func (cli *Client) GetBlocklist(ctx context.Context) (*types.Blocklist, error)` ``` -------------------------------- ### Get Issuer Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waVnameCert Returns the issuer string. ```go func (x *VerifiedNameCertificate_Details) GetIssuer() string ``` -------------------------------- ### PreKeyStore Interface Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Interface for managing pre-keys. ```go type PreKeyStore interface { GetOrGenPreKeys(ctx context.Context, count uint32) ([]*keys.PreKey, error) GenOnePreKey(ctx context.Context) (*keys.PreKey, error) GetPreKey(ctx context.Context, id uint32) (*keys.PreKey, error) RemovePreKey(ctx context.Context, id uint32) error MarkPreKeysAsUploaded(ctx context.Context, upToID uint32) error UploadedPreKeyCount(ctx context.Context) (int, error) } ``` -------------------------------- ### Get NoteID from NoteReplyMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Accessor for the note ID. ```go func (x *Armadillo_Content_NoteReplyMessage) GetNoteID() string ``` -------------------------------- ### ActionLog Method: ProtoMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/instamadilloCoreTypeActionLog Implements the proto.Message interface. ```go func (*ActionLog) ProtoMessage() ``` -------------------------------- ### Get Images from ImageGalleryMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Accessor for the images slice. ```go func (x *Armadillo_Content_ImageGalleryMessage) GetImages() []*waCommon.SubProtocol ``` -------------------------------- ### Client Configuration Functions Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Functions for setting OS information and WhatsApp client versions. ```go func SetOSInfo(name string, version [3]uint32) ``` ```go func SetWAVersion(version WAVersionContainer) ``` -------------------------------- ### Config Type and Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waReporting Configuration structure and its associated protobuf methods. ```go type Config struct { Field map[uint32]*Field `` /* 138-byte string literal not displayed */ Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` // contains filtered or unexported fields } ``` ```go func (*Config) Descriptor() ([]byte, []int) ``` ```go func (x *Config) GetField() map[uint32]*Field ``` ```go func (x *Config) GetVersion() uint32 ``` ```go func (*Config) ProtoMessage() ``` ```go func (*Config) ProtoReflect() protoreflect.Message ``` ```go func (*Config) Reset() ``` ```go func (x *Config) String() string ``` -------------------------------- ### Get SyncActionMessage Timestamp Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Retrieves the timestamp from the SyncActionMessage. ```go func (x *Armadillo_ApplicationData_MetadataSyncAction_SyncActionMessage) GetTimestamp() int64 ``` -------------------------------- ### HandleHistorySyncNotificationLoop Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Starts the history sync notification loop. ```go func (int *DangerousInternalClient) HandleHistorySyncNotificationLoop() ``` -------------------------------- ### func Init Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/argo Initializes the argo package. ```APIDOC ## func Init() ### Description Performs initialization tasks for the argo package. ### Signature `func Init() error` ### Returns - **error**: An error object if initialization fails. ``` -------------------------------- ### BuildQuickReply Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/appstate Builds an app state patch for adding or editing a quick reply. ```go func BuildQuickReply(id, shortcut, message string, keywords []string, count int32, associatedLabelIDs ...string) PatchInfo ``` -------------------------------- ### GetGroupRequestParticipants Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the list of participants that have requested to join the group. ```APIDOC ## func (*Client) GetGroupRequestParticipants ### Description Gets the list of participants that have requested to join the group. ### Signature `func (cli *Client) GetGroupRequestParticipants(ctx context.Context, jid types.JID) ([]types.GroupParticipantRequest, error)` ``` -------------------------------- ### Set all stores Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Configures all session-specific stores for the device. ```go func (device *Device) SetAllStores(store AllSessionSpecificStores) ``` -------------------------------- ### GetBusinessProfile Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the profile info of a WhatsApp business account. ```APIDOC ## func (*Client) GetBusinessProfile ### Description GetBusinessProfile gets the profile info of a WhatsApp business account. ### Signature `func (cli *Client) GetBusinessProfile(ctx context.Context, jid types.JID) (*types.BusinessProfile, error)` ``` -------------------------------- ### Get Serial Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waVnameCert Returns the serial number as a uint64. ```go func (x *VerifiedNameCertificate_Details) GetSerial() uint64 ``` -------------------------------- ### MultiDevice_Metadata methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waMultiDevice Standard protobuf and utility methods for the metadata struct. ```go func (*MultiDevice_Metadata) Descriptor() ([]byte, []int) ``` ```go func (*MultiDevice_Metadata) ProtoMessage() ``` ```go func (x *MultiDevice_Metadata) ProtoReflect() protoreflect.Message ``` ```go func (x *MultiDevice_Metadata) Reset() ``` ```go func (x *MultiDevice_Metadata) String() string ``` -------------------------------- ### MediaConn Struct and Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Contains WhatsApp server connection details for media downloads. ```go type MediaConn struct { Auth string AuthTTL int TTL int MaxBuckets int FetchedAt time.Time Hosts []MediaConnHost } ``` ```go func (mc *MediaConn) Expiry() time.Time ``` ```go type MediaConnHost struct { Hostname string } ``` -------------------------------- ### Get FutureProof behavior Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Retrieves the configured FutureProofBehavior for the payload. ```go func (x *Armadillo_SubProtocolPayload) GetFutureProof() waCommon.FutureProofBehavior ``` -------------------------------- ### Get CodeText from NetworkVerificationMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Accessor for the verification code text. ```go func (x *Armadillo_Content_NetworkVerificationMessage) GetCodeText() string ``` -------------------------------- ### CreateBackupInput Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waWebLabyrinthWaWasm Methods for interacting with the CreateBackupInput structure. ```go func (*CreateBackupInput) Descriptor() ([]byte, []int) ``` ```go func (x *CreateBackupInput) GetRecoveryCode() string ``` ```go func (x *CreateBackupInput) GetUserID() uint64 ``` ```go func (*CreateBackupInput) ProtoMessage() ``` ```go func (x *CreateBackupInput) ProtoReflect() protoreflect.Message ``` ```go func (x *CreateBackupInput) Reset() ``` ```go func (x *CreateBackupInput) String() string ``` -------------------------------- ### BuildSettingPushName Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/appstate Builds an app state patch for setting the push name. ```go func BuildSettingPushName(pushName string) PatchInfo ``` -------------------------------- ### Get LastMessageTimestamp Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Retrieves the last message timestamp from the range. ```go func (x *Armadillo_ApplicationData_MetadataSyncAction_SyncActionMessageRange) GetLastMessageTimestamp() int64 ``` -------------------------------- ### Get SyncActionMessage Key Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Retrieves the message key from the SyncActionMessage. ```go func (x *Armadillo_ApplicationData_MetadataSyncAction_SyncActionMessage) GetKey() *waCommon.MessageKey ``` -------------------------------- ### ActionLog Method: String Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/instamadilloCoreTypeActionLog Returns the string representation of the message. ```go func (x *ActionLog) String() string ``` -------------------------------- ### Get ProloguePayload ProtoReflect Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waCompanionReg Returns the protoreflect.Message interface for the ProloguePayload. ```go func (*ProloguePayload) ProtoReflect() protoreflect.Message ``` -------------------------------- ### ActionLog Method: ProtoReflect Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/instamadilloCoreTypeActionLog Returns the reflection interface for the message. ```go func (x *ActionLog) ProtoReflect() protoreflect.Message ``` -------------------------------- ### CreateBackupOutput Struct and Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waWebLabyrinthWaWasm Defines the output structure for backup creation and its associated protobuf helper methods. ```go MailboxRootKey []byte `protobuf:"bytes,4,opt,name=mailboxRootKey" json:"mailboxRootKey,omitempty"` Error *string `protobuf:"bytes,5,opt,name=error" json:"error,omitempty"` // contains filtered or unexported fields } ``` ```go func (*CreateBackupOutput) Descriptor() ([]byte, []int) ``` ```go func (x *CreateBackupOutput) GetDevice() *DeviceOutput ``` ```go func (x *CreateBackupOutput) GetEpoch0() *Epoch0Output ``` ```go func (x *CreateBackupOutput) GetError() string ``` ```go func (x *CreateBackupOutput) GetMailboxRootKey() []byte ``` ```go func (x *CreateBackupOutput) GetVirtualDevice() *VirtualDeviceOutput ``` ```go func (*CreateBackupOutput) ProtoMessage() ``` ```go func (x *CreateBackupOutput) ProtoReflect() protoreflect.Message ``` ```go func (x *CreateBackupOutput) Reset() ``` ```go func (x *CreateBackupOutput) String() string ``` -------------------------------- ### Get ProloguePayload Commitment Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waCompanionReg Returns the CompanionCommitment field from the ProloguePayload. ```go func (x *ProloguePayload) GetCommitment() *CompanionCommitment ``` -------------------------------- ### Load all SignedPreKeys Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Retrieves all signed pre-key records. ```go func (device *Device) LoadSignedPreKeys(ctx context.Context) ([]*record.SignedPreKey, error) ``` -------------------------------- ### Get local registration ID Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Returns the local registration ID. ```go func (device *Device) GetLocalRegistrationID() uint32 ``` -------------------------------- ### Manage PreKeys Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store/sqlstore Methods for generating and retrieving cryptographic PreKeys. ```go func (s *SQLStore) GenOnePreKey(ctx context.Context) (*keys.PreKey, error) ``` ```go func (s *SQLStore) GetOrGenPreKeys(ctx context.Context, count uint32) ([]*keys.PreKey, error) ``` ```go func (s *SQLStore) GetPreKey(ctx context.Context) ``` -------------------------------- ### Get client payload Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Returns the client payload associated with the device. ```go func (device *Device) GetClientPayload() *waWa6.ClientPayload ``` -------------------------------- ### Get Subscribed Newsletters Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Retrieves metadata for all newsletters the user is joined to. ```go func (cli *Client) GetSubscribedNewsletters(ctx context.Context) ([]*types.NewsletterMetadata, error) ``` -------------------------------- ### GetStatus Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waBotMetadata Retrieves the current status of the planning step. ```go func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) GetStatus() BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus ``` -------------------------------- ### Migrate from WhatsMeow Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Update your go.mod file to remove old replacements and switch to the HyperMeow module. ```bash go mod edit -dropreplace=go.mau.fi/whatsmeow go get github.com/polymorfa/hypermeow@main go mod tidy ``` -------------------------------- ### GetNewsletterMessageUpdates Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets updates in a WhatsApp channel, such as reaction and view counts. ```go func (cli *Client) GetNewsletterMessageUpdates(ctx context.Context, jid types.JID, params *GetNewsletterUpdatesParams) ([]*types.NewsletterMessage, error) ``` -------------------------------- ### CreateBackupOutput Structure Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waWebLabyrinthWaWasm Output structure for the backup creation process. ```go type CreateBackupOutput struct { Device *DeviceOutput `protobuf:"bytes,1,opt,name=device" json:"device,omitempty"` VirtualDevice *VirtualDeviceOutput `protobuf:"bytes,2,opt,name=virtualDevice" json:"virtualDevice,omitempty"` Epoch0 *Epoch0Output `protobuf:"bytes,3,opt,name=epoch0" json:"epoch0,omitempty"` ``` -------------------------------- ### Get Media Payload Protocol Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplication Retrieves the sub-protocol from the media payload. ```go func (x *ConsumerApplication_MediaPayload) GetProtocol() *waCommon.SubProtocol ``` -------------------------------- ### GetSections Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waBotMetadata Retrieves the list of planning step sections. ```go func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) GetSections() []*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata ``` -------------------------------- ### Get Verified Name Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waVnameCert Returns the verified name string. ```go func (x *VerifiedNameCertificate_Details) GetVerifiedName() string ``` -------------------------------- ### Get Localized Names Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waVnameCert Returns a slice of LocalizedName pointers. ```go func (x *VerifiedNameCertificate_Details) GetLocalizedNames() []*LocalizedName ``` -------------------------------- ### ConsumerApplication_AudioMessage Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplication Methods for interacting with audio messages. ```go func (msg *ConsumerApplication_AudioMessage) Decode() (dec *waMediaTransport.AudioTransport, err error) ``` ```go func (*ConsumerApplication_AudioMessage) Descriptor() ([]byte, []int) ``` ```go func (x *ConsumerApplication_AudioMessage) GetAudio() ``` -------------------------------- ### DownloadMediaWithPath Client Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Downloads media by manually specifying path and encryption details. ```go func (cli *Client) DownloadMediaWithPath( ctx context.Context, directPath string, encFileHash, fileHash, mediaKey []byte, mediaType MediaType, mmsType string, allowNoHash bool, ) (data []byte, err error) ``` ```go func (cli *Client) DownloadMediaWithPathToFile( ctx context.Context, directPath string, encFileHash, fileHash, mediaKey []byte, mediaType MediaType, mmsType string, allowNoHash bool, file File, ) error ``` -------------------------------- ### Get Issue Time Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waVnameCert Returns the issue time as a uint64. ```go func (x *VerifiedNameCertificate_Details) GetIssueTime() uint64 ``` -------------------------------- ### Get ProtoReflect for NetworkVerificationMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Provides access to the protobuf reflection interface. ```go func (x *Armadillo_Content_NetworkVerificationMessage) ProtoReflect() protoreflect.Message ``` -------------------------------- ### Import HyperMeow Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Import the package using an alias to maintain compatibility with the root package name. ```go import whatsmeow "github.com/polymorfa/hypermeow" ``` -------------------------------- ### Get ProtoReflect for ImageGalleryMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Provides access to the protobuf reflection interface. ```go func (x *Armadillo_Content_ImageGalleryMessage) ProtoReflect() protoreflect.Message ``` -------------------------------- ### HandlePairDevice Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Processes a device pairing node. ```go func (int *DangerousInternalClient) HandlePairDevice(ctx context.Context, node *waBinary.Node) ``` -------------------------------- ### ADVSignedDeviceIdentity Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waAdv Methods for interacting with the ADVSignedDeviceIdentity structure. ```go func (x *ADVSignedDeviceIdentity) GetDetails() []byte ``` ```go func (x *ADVSignedDeviceIdentity) GetDeviceSignature() []byte ``` ```go func (*ADVSignedDeviceIdentity) ProtoMessage() ``` ```go func (x *ADVSignedDeviceIdentity) ProtoReflect() protoreflect.Message ``` ```go func (*ADVSignedDeviceIdentity) Reset() ``` ```go func (*ADVSignedDeviceIdentity) String() string ``` -------------------------------- ### Get Descriptor for ImageGalleryMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Retrieves the protobuf descriptor for the message type. ```go func (*Armadillo_Content_ImageGalleryMessage) Descriptor() ([]byte, []int) ``` -------------------------------- ### AutoDownloadSettings Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waHistorySync Methods for accessing and managing auto-download configuration fields. ```go func (*AutoDownloadSettings) Descriptor() ([]byte, []int) ``` ```go func (x *AutoDownloadSettings) GetDownloadAudio() bool ``` ```go func (x *AutoDownloadSettings) GetDownloadDocuments() bool ``` ```go func (x *AutoDownloadSettings) GetDownloadImages() bool ``` ```go func (x *AutoDownloadSettings) GetDownloadVideo() bool ``` ```go func (*AutoDownloadSettings) ProtoMessage() ``` ```go func (x *AutoDownloadSettings) ProtoReflect() protoreflect.Message ``` ```go func (x *AutoDownloadSettings) Reset() ``` ```go func (x *AutoDownloadSettings) String() string ``` -------------------------------- ### Get LastSystemMessageTimestamp Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Retrieves the last system message timestamp from the range. ```go func (x *Armadillo_ApplicationData_MetadataSyncAction_SyncActionMessageRange) GetLastSystemMessageTimestamp() int64 ``` -------------------------------- ### ProtoMessage method for ConsumerApplication_AudioMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplication Implements the ProtoMessage interface. ```go func (*ConsumerApplication_AudioMessage) ProtoMessage() ``` -------------------------------- ### Get Store Mapping Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/argo Retrieves the store mapping of wire types. ```go func GetStore() (map[string]wire.Type, error) ``` -------------------------------- ### ConsumerApplication Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplication Methods for interacting with the ConsumerApplication struct. ```go func (*ConsumerApplication) Descriptor() ([]byte, []int) ``` ```go func (x *ConsumerApplication) GetMetadata() *ConsumerApplication_Metadata ``` ```go func (x *ConsumerApplication) GetPayload() *ConsumerApplication_Payload ``` ```go func (*ConsumerApplication) IsMessageApplicationSub() ``` ```go func (*ConsumerApplication) ProtoMessage() ``` ```go func (x *ConsumerApplication) ProtoReflect() protoreflect.Message ``` ```go func (x *ConsumerApplication) Reset() ``` ```go func (x *ConsumerApplication) String() string ``` -------------------------------- ### Get WebNotificationsInfo Fields Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waWeb Methods to retrieve specific fields from the WebNotificationsInfo structure. ```go func (x *WebNotificationsInfo) GetNotifyMessageCount() uint32 ``` ```go func (x *WebNotificationsInfo) GetNotifyMessages() []*WebMessageInfo ``` ```go func (x *WebNotificationsInfo) GetTimestamp() uint64 ``` ```go func (x *WebNotificationsInfo) GetUnreadChats() uint32 ``` -------------------------------- ### QP Structure Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waQuickPromotionSurfaces Standard protobuf methods for the QP struct. ```go func (*QP) ProtoMessage() ``` ```go func (x *QP) ProtoReflect() protoreflect.Message ``` ```go func (x *QP) Reset() ``` ```go func (x *QP) String() string ``` -------------------------------- ### Get Protocol App Version Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Retrieves the protocol-specific application version structure. ```go func (vc WAVersionContainer) ProtoAppVersion() *waWa6.ClientPayload_UserAgent_AppVersion ``` -------------------------------- ### Manage App State Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store/sqlstore Methods for interacting with application state mutations and sync keys. ```go func (s *SQLStore) DeleteAppStateMutationMACs(ctx context.Context, name string, indexMACs [][]byte) (err error) ``` ```go func (s *SQLStore) DeleteAppStateVersion(ctx context.Context, name string) error ``` ```go func (s *SQLStore) GetAllAppStateSyncKeys(ctx context.Context) ([]*store.AppStateSyncKey, error) ``` ```go func (s *SQLStore) GetAppStateMutationMAC(ctx context.Context, name string, indexMAC []byte) (valueMAC []byte, err error) ``` ```go func (s *SQLStore) GetAppStateSyncKey(ctx context.Context, id []byte) (*store.AppStateSyncKey, error) ``` ```go func (s *SQLStore) GetAppStateVersion(ctx context.Context, name string) (version uint64, hash [128]byte, err error) ``` ```go func (s *SQLStore) GetLatestAppStateSyncKeyID(ctx context.Context) ([]byte, error) ``` -------------------------------- ### Get WhatsApp Version Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Retrieves the current WhatsApp web client version. ```go func GetWAVersion() WAVersionContainer ``` -------------------------------- ### Define ConsumerApplication Helper Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplicationParameterised Standard protobuf helper methods for the ConsumerApplication struct. ```go func (*ConsumerApplication) Descriptor() ([]byte, []int) ``` ```go func (x *ConsumerApplication) GetMetadata() *ConsumerApplication_Metadata ``` ```go func (x *ConsumerApplication) GetPayload() *ConsumerApplication_Payload ``` ```go func (*ConsumerApplication) ProtoMessage() ``` ```go func (x *ConsumerApplication) ProtoReflect() protoreflect.Message ``` ```go func (x *ConsumerApplication) Reset() ``` ```go func (x *ConsumerApplication) String() string ``` -------------------------------- ### Get ReceiptType GoString Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/types Returns the name of the Go constant for the ReceiptType value. ```go func (rt ReceiptType) GoString() string ``` -------------------------------- ### WallpaperSettings Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waHistorySync Getter and utility methods for the WallpaperSettings struct. ```go func (*WallpaperSettings) Descriptor() ([]byte, []int) ``` ```go func (x *WallpaperSettings) GetFilename() string ``` ```go func (x *WallpaperSettings) GetIsGenAi() bool ``` ```go func (x *WallpaperSettings) GetOpacity() uint32 ``` ```go func (*WallpaperSettings) ProtoMessage() ``` ```go func (x *WallpaperSettings) ProtoReflect() protoreflect.Message ``` ```go func (x *WallpaperSettings) Reset() ``` ```go func (x *WallpaperSettings) String() string ``` -------------------------------- ### Get identity key pair Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Retrieves the identity key pair for the device. ```go func (device *Device) GetIdentityKeyPair() *identity.KeyPair ``` -------------------------------- ### HandleAppStateSyncKeyShare Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Processes app state sync key sharing. ```go func (int *DangerousInternalClient) HandleAppStateSyncKeyShare(ctx context.Context, keys *waE2E.AppStateSyncKeyShare) ``` -------------------------------- ### Upload Business Product Image Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Uploads an image for a business product. ```go func (cli *Client) UploadBusinessProductImage(ctx context.Context, image []byte) (string, error) ``` -------------------------------- ### Get BizAccountLinkInfo account type Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waVnameCert Retrieves the account type from the BizAccountLinkInfo structure. ```go func (x *BizAccountLinkInfo) GetAccountType() BizAccountLinkInfo_AccountType ``` -------------------------------- ### Get UserPassword fields Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waUserPassword Methods to retrieve data from a UserPassword message instance. ```go func (x *UserPassword) GetEncoding() UserPassword_Encoding ``` ```go func (x *UserPassword) GetTransformedData() []byte ``` ```go func (x *UserPassword) GetTransformer() UserPassword_Transformer ``` ```go func (x *UserPassword) GetTransformerArg() []*UserPassword_TransformerArg ``` -------------------------------- ### Manage Client Connection Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Methods to establish a connection to the WhatsApp web websocket. ```go func (cli *Client) Connect() error ``` ```go func (cli *Client) ConnectContext(ctx context.Context) error ``` -------------------------------- ### PutAppStateSyncKey Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store/sqlstore Stores an app state sync key. ```go func (s *SQLStore) PutAppStateSyncKey(ctx context.Context, id []byte, key store.AppStateSyncKey) error ``` -------------------------------- ### Get Descriptor for NoteReplyMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Retrieves the protobuf descriptor for the note reply message. ```go func (*Armadillo_Content_NoteReplyMessage) Descriptor() ([]byte, []int) ``` -------------------------------- ### Get Descriptor for NetworkVerificationMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloApplication Retrieves the protobuf descriptor for the network verification message. ```go func (*Armadillo_Content_NetworkVerificationMessage) Descriptor() ([]byte, []int) ``` -------------------------------- ### ConsumerApplication_Metadata Structure and Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplicationParameterised Defines metadata structures for the application, including special text size configurations. ```go type ConsumerApplication_Metadata struct { SpecialTextSize *ConsumerApplication_Metadata_SpecialTextSize `` /* 162-byte string literal not displayed */ // contains filtered or unexported fields } ``` ```go func (*ConsumerApplication_Metadata) Descriptor() ([]byte, []int) ``` ```go func (x *ConsumerApplication_Metadata) GetSpecialTextSize() ConsumerApplication_Metadata_SpecialTextSize ``` ```go func (*ConsumerApplication_Metadata) ProtoMessage() ``` ```go func (*ConsumerApplication_Metadata) ProtoReflect() protoreflect.Message ``` ```go func (x *ConsumerApplication_Metadata) Reset() ``` ```go func (x *ConsumerApplication_Metadata) String() string ``` -------------------------------- ### MultiDevice Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waMultiDevice Standard methods for interacting with the MultiDevice message type. ```go func (*MultiDevice) Descriptor() ([]byte, []int) ``` ```go func (x *MultiDevice) GetMetadata() *MultiDevice_Metadata ``` ```go func (x *MultiDevice) GetPayload() *MultiDevice_Payload ``` ```go func (*MultiDevice) IsMessageApplicationSub() ``` ```go func (*MultiDevice) ProtoMessage() ``` ```go func (x *MultiDevice) ProtoReflect() protoreflect.Message ``` ```go func (x *MultiDevice) Reset() ``` ```go func (x *MultiDevice) String() string ``` -------------------------------- ### Get Animations Type Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waMediaTransport Retrieves the animation type for the downloadable animation. ```go func (x *AudioTransport_Ancillary_AvatarAudio_DownloadableAvatarAnimations) GetAnimationsType() AudioTransport_Ancillary_AvatarAudio_AnimationsType ``` -------------------------------- ### NewPreKey Constructor Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/util/keys Creates a new PreKey instance with the specified key ID. ```go func NewPreKey(keyID uint32) *PreKey ``` -------------------------------- ### Get Enum Descriptor Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waBotMetadata Retrieves the protocol buffer enum descriptor for the capability type. ```go func (BotCapabilityMetadata_BotCapabilityType) Descriptor() protoreflect.EnumDescriptor ``` -------------------------------- ### Get StickerPackItem Media Key Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/types Retrieves the media key for a sticker pack item. ```go func (spi *StickerPackItem) GetMediaKey() []byte ``` -------------------------------- ### NoopStore Implementation Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store A no-operation store implementation for testing purposes. ```go type NoopStore struct { Error error } ``` ```go func (n *NoopStore) AddOutgoingEvent(ctx context.Context, chatJID types.JID, id types.MessageID, format string, plaintext []byte) error ``` ```go func (n *NoopStore) ClearBufferedEventPlaintext(ctx context.Context, ciphertextHash [32]byte) error ``` ```go func (n *NoopStore) DeleteAllIdentities(ctx context.Context, phone string) error ``` ```go func (n *NoopStore) DeleteAllSessions(ctx context.Context, phone string) error ``` ```go func (n *NoopStore) DeleteAppStateMutationMACs(ctx context.Context, name string, indexMACs [][]byte) error ``` ```go func (n *NoopStore) DeleteAppStateVersion(ctx context.Context, name string) error ``` ```go func (n *NoopStore) DeleteDevice(ctx context.Context, store *Device) error ``` ```go func (n *NoopStore) DeleteExpiredPrivacyTokens(ctx context.Context, cutoff time.Time) (int64, error) ``` ```go func (n *NoopStore) DeleteIdentity(ctx context.Context, address string) error ``` ```go func (n *NoopStore) DeleteNCTSalt(ctx context.Context) error ``` ```go func (n *NoopStore) DeleteOldBufferedHashes(ctx context.Context) error ``` ```go func (n *NoopStore) DeleteOldOutgoingEvents(ctx context.Context) error ``` ```go func (n *NoopStore) DeleteSession(ctx context.Context, phone string) error ``` -------------------------------- ### InteractiveAnnotation Proto Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplication Standard Protocol Buffer methods for InteractiveAnnotation. ```go func (*ConsumerApplication_InteractiveAnnotation) ProtoMessage() ``` ```go func (x *ConsumerApplication_InteractiveAnnotation) ProtoReflect() protoreflect.Message ``` ```go func (x *ConsumerApplication_InteractiveAnnotation) Reset() ``` ```go func (x *ConsumerApplication_InteractiveAnnotation) String() string ``` -------------------------------- ### Get source string representation Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/types Returns a log-friendly representation of the message sender and location. ```go func (ms *MessageSource) SourceString() string ``` -------------------------------- ### Get sub-device sessions Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/store Retrieves session IDs for sub-devices associated with the given name. ```go func (device *Device) GetSubDeviceSessions(ctx context.Context, name string) ([]uint32, error) ``` -------------------------------- ### GetProvider Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waBotMetadata Retrieves the search source provider. ```go func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata) GetProvider() BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider ``` -------------------------------- ### StoreGlobalSettings Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Persists global settings. ```go func (int *DangerousInternalClient) StoreGlobalSettings(ctx context.Context, settings *waHistorySync.GlobalSettings) ``` -------------------------------- ### Get User Devices Context Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Context-aware variant for retrieving user device lists. ```go func (cli *Client) GetUserDevicesContext(ctx context.Context, jids []types.JID) ([]types.JID, error) ``` -------------------------------- ### Get Latest Version Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Fetches the latest WhatsApp version from web.whatsapp.com and updates the store. ```go func GetLatestVersion(ctx context.Context, httpClient *http.Client) (*store.WAVersionContainer, error) ``` ```go latestVer, err := GetLatestVersion(nil) if err != nil { return err } store.SetWAVersion(*latestVer) ``` -------------------------------- ### ClientPayload_ConnectReason Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waWa6 Methods for interacting with the ConnectReason enum. ```go func (ClientPayload_ConnectReason) Descriptor() protoreflect.EnumDescriptor ``` ```go func (x ClientPayload_ConnectReason) Enum() *ClientPayload_ConnectReason ``` ```go func (ClientPayload_ConnectReason) EnumDescriptor() ([]byte, []int) ``` ```go func (x ClientPayload_ConnectReason) Number() protoreflect.EnumNumber ``` ```go func (x ClientPayload_ConnectReason) String() string ``` ```go func (ClientPayload_ConnectReason) Type() protoreflect.EnumType ``` ```go func (x *ClientPayload_ConnectReason) UnmarshalJSON(b []byte) error ``` -------------------------------- ### ConsumerApplication_Content Protobuf Interface Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplicationParameterised Standard protobuf interface methods for the ConsumerApplication_Content struct. ```go func (*ConsumerApplication_Content) ProtoMessage() ``` ```go func (x *ConsumerApplication_Content) ProtoReflect() protoreflect.Message ``` ```go func (x *ConsumerApplication_Content) Reset() ``` ```go func (x *ConsumerApplication_Content) String() string ``` -------------------------------- ### Get ImageMessage Fields Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplication Accessor methods for retrieving caption and image data from an ImageMessage. ```go func (x *ConsumerApplication_ImageMessage) GetCaption() *waCommon.MessageText ``` ```go func (x *ConsumerApplication_ImageMessage) GetImage() *waCommon.SubProtocol ``` -------------------------------- ### Get Direct Path Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waMediaTransport Retrieves the direct path string for the downloadable animation. ```go func (x *AudioTransport_Ancillary_AvatarAudio_DownloadableAvatarAnimations) GetDirectPath() ``` -------------------------------- ### ActionLogReaction Method: ProtoMessage Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/instamadilloCoreTypeActionLog Implements the proto.Message interface. ```go func (*ActionLogReaction) ProtoMessage() ``` -------------------------------- ### DoMediaDownloadRequest Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Executes a media download request via HTTP. ```go func (int *DangerousInternalClient) DoMediaDownloadRequest(ctx context.Context, url string) (*http.Response, error) ``` -------------------------------- ### Get Pose ID Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waMediaTransport Retrieves the pose ID for the avatar audio transport. ```go func (x *AudioTransport_Ancillary_AvatarAudio) GetPoseID() uint32 ``` -------------------------------- ### Get field methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waArmadilloXMA Getter methods for accessing specific fields within the ExtendedContentMessage. ```go func (x *ExtendedContentMessage) GetAssociatedMessage() *waCommon.SubProtocol ``` ```go func (x *ExtendedContentMessage) GetCommands() []*waCommon.Command ``` ```go func (x *ExtendedContentMessage) GetContentRef() string ``` -------------------------------- ### Group and Newsletter Creation Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Methods to initialize new groups or WhatsApp channels. ```go func (cli *Client) CreateGroup(ctx context.Context, req ReqCreateGroup) (*types.GroupInfo, error) ``` ```go func (cli *Client) CreateNewsletter(ctx context.Context, params CreateNewsletterParams) (*types.NewsletterMetadata, error) ``` -------------------------------- ### GetStatusPrivacy Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the user's status privacy settings. The first element is the default setting. ```go func (cli *Client) GetStatusPrivacy(ctx context.Context) ([]types.StatusPrivacy, error) ``` -------------------------------- ### Sign Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/util/keys Signs a provided KeyPair and returns a 64-byte signature. ```go func (kp *KeyPair) Sign(keyToSign *KeyPair) *[64]byte ``` -------------------------------- ### PlanningStepStatus Methods Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waBotMetadata Methods for interacting with the PlanningStepStatus enum, including descriptor, enum conversion, and string representation. ```go func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Descriptor() protoreflect.EnumDescriptor ``` ```go func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Enum() *BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus ``` ```go func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) EnumDescriptor() ([]byte, []int) ``` ```go func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Number() protoreflect.EnumNumber ``` ```go func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) String() string ``` -------------------------------- ### GetPrivacySettings Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the user's privacy settings. Returns an empty struct if an error occurs. ```go func (cli *Client) GetPrivacySettings(ctx context.Context) (settings types.PrivacySettings) ``` -------------------------------- ### GetNewsletterInfoWithInvite Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the info of a newsletter with an invite link. The ViewerMeta field of the returned NewsletterMetadata will be nil. ```go func (cli *Client) GetNewsletterInfoWithInvite(ctx context.Context, key string) (*types.NewsletterMetadata, error) ``` -------------------------------- ### DispatchAppState Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Dispatches an application state mutation. ```go func (int *DangerousInternalClient) DispatchAppState(ctx context.Context, name appstate.WAPatchName, mutation appstate.Mutation, fullSync bool) (eventToDispatch any) ``` -------------------------------- ### GetIsReasoning Method Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waBotMetadata Retrieves the reasoning status for the planning step. ```go func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) GetIsReasoning() bool ``` -------------------------------- ### GetGroupInfoFromInvite Source: https://pkg.go.dev/github.com/polymorfa/hypermeow Gets the group info from an invite message. This is specifically for invite messages, not invite links. ```APIDOC ## func (*Client) GetGroupInfoFromInvite ### Description Gets the group info from an invite message. This is specifically for invite messages, not invite links. ### Signature `func (cli *Client) GetGroupInfoFromInvite(ctx context.Context, jid, inviter types.JID, code string, expiration int64) (*types.GroupInfo, error)` ``` -------------------------------- ### Get InteractiveAnnotation Fields Source: https://pkg.go.dev/github.com/polymorfa/hypermeow/proto/waConsumerApplication Accessor methods for retrieving action, location, and polygon vertices from an InteractiveAnnotation. ```go func (x *ConsumerApplication_InteractiveAnnotation) GetAction() isConsumerApplication_InteractiveAnnotation_Action ``` ```go func (x *ConsumerApplication_InteractiveAnnotation) GetLocation() *ConsumerApplication_Location ``` ```go func (x *ConsumerApplication_InteractiveAnnotation) GetPolygonVertices() []*ConsumerApplication_Point ```