You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
matterbridge/vendor/go.mau.fi/whatsmeow/types/user.go

117 lines
3.7 KiB
Go

// Copyright (c) 2022 Tulir Asokan
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
package types
import (
"time"
waProto "go.mau.fi/whatsmeow/binary/proto"
)
// VerifiedName contains verified WhatsApp business details.
type VerifiedName struct {
Certificate *waProto.VerifiedNameCertificate
Details *waProto.VerifiedNameCertificate_Details
}
// UserInfo contains info about a WhatsApp user.
type UserInfo struct {
VerifiedName *VerifiedName
Status string
PictureID string
Devices []JID
}
// ProfilePictureInfo contains the ID and URL for a WhatsApp user's profile picture or group's photo.
type ProfilePictureInfo struct {
URL string // The full URL for the image, can be downloaded with a simple HTTP request.
ID string // The ID of the image. This is the same as UserInfo.PictureID.
Type string // The type of image. Known types include "image" (full res) and "preview" (thumbnail).
DirectPath string // The path to the image, probably not very useful
}
// ContactInfo contains the cached names of a WhatsApp user.
type ContactInfo struct {
Found bool
FirstName string
FullName string
PushName string
BusinessName string
}
// LocalChatSettings contains the cached local settings for a chat.
type LocalChatSettings struct {
Found bool
MutedUntil time.Time
Pinned bool
Archived bool
}
// IsOnWhatsAppResponse contains information received in response to checking if a phone number is on WhatsApp.
type IsOnWhatsAppResponse struct {
Query string // The query string used
JID JID // The canonical user ID
IsIn bool // Whether the phone is registered or not.
VerifiedName *VerifiedName // If the phone is a business, the verified business details.
}
// BusinessMessageLinkTarget contains the info that is found using a business message link (see Client.ResolveBusinessMessageLink)
type BusinessMessageLinkTarget struct {
JID JID // The JID of the business.
PushName string // The notify / push name of the business.
VerifiedName string // The verified business name.
IsSigned bool // Some boolean, seems to be true?
VerifiedLevel string // I guess the level of verification, starting from "unknown".
Message string // The message that WhatsApp clients will pre-fill in the input box when clicking the link.
}
// PrivacySetting is an individual setting value in the user's privacy settings.
type PrivacySetting string
// Possible privacy setting values.
const (
PrivacySettingUndefined PrivacySetting = ""
PrivacySettingAll PrivacySetting = "all"
PrivacySettingContacts PrivacySetting = "contacts"
PrivacySettingNone PrivacySetting = "none"
)
// PrivacySettings contains the user's privacy settings.
type PrivacySettings struct {
GroupAdd PrivacySetting
LastSeen PrivacySetting
Status PrivacySetting
Profile PrivacySetting
ReadReceipts PrivacySetting
}
// StatusPrivacyType is the type of list in StatusPrivacy.
type StatusPrivacyType string
const (
// StatusPrivacyTypeContacts means statuses are sent to all contacts.
StatusPrivacyTypeContacts StatusPrivacyType = "contacts"
// StatusPrivacyTypeBlacklist means statuses are sent to all contacts, except the ones on the list.
StatusPrivacyTypeBlacklist StatusPrivacyType = "blacklist"
// StatusPrivacyTypeWhitelist means statuses are only sent to users on the list.
StatusPrivacyTypeWhitelist StatusPrivacyType = "whitelist"
)
// StatusPrivacy contains the settings for who to send status messages to by default.
type StatusPrivacy struct {
Type StatusPrivacyType
List []JID
IsDefault bool
}