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
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::nullopt
to 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::nullopt
if 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.
Declaration
Parameters
This endpoint takes no inputs.
Returns
profile_pic
- Returns the profile pic
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::nullopt
to 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 if either one is empty.
Declaration
void set_profile_pic(std::string_view url, ustring_view 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::storage_namespace
Returns the UserProfile namespace. Is constant, will always return 2
Declaration
Parameters
This endpoint takes no inputs.
Returns
Namespace
- Will return 2