User Profile
UserProfile::UserProfile
Constructs a user profile from existing data (stored from dump()) and the user's secret
key for generating the data encryption key. To construct a blank profile (i.e. with no
pre-existing dumped data to load) pass std::nullopt as the second argument.
Declaration
UserProfile(
std::span<const unsigned char> ed25519_secretkey,
std::optional<std::span<const unsigned char>> dumped);
Parameters
ed25519_secretkey— contains the libsodium secret key used to encrypt/decrypt the data when pushing/pulling from the swarm. This can either be the full 64-byte value (which is technically the 32-byte seed followed by the 32-byte pubkey), or just the 32-byte seed of the secret key.dumped— eitherstd::nulloptto construct a new, empty object; or binary state data that was previously dumped from an instance of this class by callingdump().
Returns
UserProfile- Constructor
UserProfile::encryption_domain
Returns the domain. Is constant, will always return "UserProfile"
Declaration
Parameters
This endpoint takes no inputs.
Returns
const char*- Will return "UserProfile"
UserProfile::get_blinded_msgreqs
Accesses whether or not blinded message requests are enabled for the client. Can have three values:
- std::nullopt — the value has not been given an explicit value so the client should use its default.
- true — the value is explicitly enabled (i.e. user wants blinded message requests)
- false — the value is explicitly disabled (i.e. user disabled blinded message requests)
Declaration
Parameters
This endpoint takes no inputs.
Returns
std::optional<bool>- true/false if blinded message requests are enabled or disabled;std::nulloptif the option has not been set either way.
UserProfile::get_name
Returns the user profile name, or std::nullopt if there is no profile name set.
Declaration
Parameters
This endpoint takes no inputs.
Returns
std::optional<std::string>- Returns the user profile name if it exists
UserProfile::get_nts_expiry
Returns the current Note-to-self message expiry timer, if set, or std::nullopt if there is no current expiry timer set.
Declaration
Parameters
This endpoint takes no inputs.
Returns
std::optional<std::chrono::seconds>- Returns the timestamp representing the message expiry timer if the timer is set
UserProfile::get_nts_priority
Gets the Note-to-self conversation priority. Negative means hidden; 0 means unpinned; higher means higher priority (i.e. hidden in the convo list).
Declaration
Parameters
This endpoint takes no inputs.
Returns
int- Returns a numeric representing prioritity
UserProfile::get_profile_pic
Gets the user's current profile pic URL and decryption key. The returned object will evaluate as false if the URL and/or key are not set. The returned value will be the latest profile pic between when the user last set their profile and when it was last re-uploaded.
Declaration
Parameters
This endpoint takes no inputs.
Returns
profile_pic- Returns the profile pic
UserProfile::get_profile_updated
Returns the timestamp that the user last updated their profile information; or 0 if it's
never been updated. This value will return the latest timestamp between when the user last
set their profile and when it was last re-uploaded.
Declaration
Parameters
This endpoint takes no inputs.
Returns
std::chrono::sys_seconds- timestamp that the user last updated their profile information. Will be0if it's never been updated.
UserProfile::set_blinded_msgreqs
Sets whether blinded message requests (i.e. from SOGS servers you are connected to) should
be enabled or not. This is typically invoked with either true or false, but can also be
called with std::nullopt to explicitly clear the value.
Declaration
Parameters
enabled— true if blinded message requests should be retrieved, false if they should not, andstd::nulloptto drop the setting from the config (and thus use the client's default).
Returns
UserProfile::set_name
Sets the user profile name; if given an empty string then the name is removed.
Declaration
Parameters
new_name— The name to be put into the user profile
Returns
UserProfile::set_name_truncated
Sets the user profile name; if given an empty string then the name is removed. Same as the
set_name function but truncates the name if it's too long.
Declaration
Parameters
new_name— The name to be put into the user profile
Returns
UserProfile::set_nts_expiry
Sets the Note-to-self message expiry timer. Call without arguments (or pass a zero time) to disable the expiry timer.
Declaration
Parameters
timer— Default to 0 seconds, will set the expiry timer
Returns
UserProfile::set_nts_priority
Sets the Note-to-self conversation priority. -1 for hidden, 0 for unpinned, higher for pinned higher.
Declaration
Parameters
priority— Numeric representing priority
Returns
UserProfile::set_profile_pic
Sets the user's current profile pic to a new URL and decryption key. Clears both as well as the reupload values if either one is empty.
Declaration
void set_profile_pic(std::string_view url, std::span<const unsigned char> key);
void set_profile_pic(profile_pic pic);
Parameters
- First function:
url— URL pointing to the profile pickey— Decryption key- Second function:
pic— Profile pic object
Returns
UserProfile::set_reupload_profile_pic
Sets the user's profile pic to a new URL and decryption key after reuploading.
Declaration
void set_reupload_profile_pic(std::string_view url, std::span<const unsigned char> key);
void set_reupload_profile_pic(profile_pic pic);
Parameters
- First function:
url— URL pointing to the profile pickey— Decryption key- Second function:
pic— Profile pic object
Returns
UserProfile::set_theme_primary_color
Sets the setting indicating which primary color the client should use.
Declaration
Parameters
value— Updated primary color setting
Returns
UserProfile::storage_namespace
Returns the UserProfile namespace. Is constant, will always return 2
Declaration
Parameters
This endpoint takes no inputs.
Returns
Namespace- Will return 2