Skip to content

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(ustring_view ed25519_secretkey, std::optional<ustring_view> 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 — either std::nullopt to construct a new, empty object; or binary state data that was previously dumped from an instance of this class by calling dump().

Returns

  • UserProfile - Constructor

UserProfile::encryption_domain

Returns the domain. Is constant, will always return "UserProfile"

Declaration

const char* encryption_domain() const override { return "UserProfile"; }

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

std::optional<bool> get_blinded_msgreqs() const;

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

std::optional<std::string_view> get_name() const;

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

std::optional<std::chrono::seconds> get_nts_expiry() const;

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

int get_nts_priority() const;

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

profile_pic get_profile_pic() const;

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

void set_blinded_msgreqs(std::optional<bool> enabled);

Parameters

  • enabled — true if blinded message requests should be retrieved, false if they should not, and std::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

void set_name(std::string_view new_name);

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

void set_name_truncated(std::string new_name);

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

void set_nts_expiry(std::chrono::seconds timer = 0s);

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

void set_nts_priority(int priority);

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 pic
  • key — Decryption key
  • Second function:
  • pic — Profile pic object

Returns

UserProfile::storage_namespace

Returns the UserProfile namespace. Is constant, will always return 2

Declaration

Namespace storage_namespace() const override { return Namespace::UserProfile; }

Parameters

This endpoint takes no inputs.

Returns

  • Namespace - Will return 2