Change some class names, because classes are supposed to use PascalCase.
Variables and functions should still use camelCase.
This commit is contained in:
parent
df36e7d798
commit
e55eb6245b
|
@ -36,7 +36,7 @@ int main() {
|
|||
|
||||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
|
||||
leet::User::credentialsResponse resp{};
|
||||
leet::User::CredentialsResponse resp{};
|
||||
|
||||
/* Check if we should consider this an attempt to register. Then we will
|
||||
* either log in or register.
|
||||
|
|
|
@ -24,7 +24,7 @@ int main() {
|
|||
cred.deviceID = "libleet test client";
|
||||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
resp = leet::loginAccount(cred);
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ int main() {
|
|||
cred.deviceID = "libleet test client";
|
||||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
resp = leet::loginAccount(cred);
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ int main() {
|
|||
cred.deviceID = "libleet test client";
|
||||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
resp = leet::loginAccount(cred);
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ int main() {
|
|||
cred.deviceID = "libleet test client";
|
||||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
if (leet::checkIfUsernameIsAvailable(cred.Username)) {
|
||||
resp = leet::registerAccount(cred);
|
||||
|
@ -40,7 +40,7 @@ int main() {
|
|||
|
||||
leet::transID = leet::returnUnixTimestamp();
|
||||
|
||||
leet::URL::urlPreview prev = leet::getURLPreview(resp, URL, 0);
|
||||
leet::URL::URLPreview prev = leet::getURLPreview(resp, URL, 0);
|
||||
std::cout << "\033[2J\033[1;1H";
|
||||
|
||||
std::cout << "URL: " << prev.URL << "\n";
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* libleet parse URL
|
||||
* ======================
|
||||
*
|
||||
* This is a simple libleet example, which allows you to simply parse a URL.
|
||||
* It is quite useless, and only really serves as a test for the network request
|
||||
* wrapper.
|
||||
|
|
|
@ -19,7 +19,7 @@ int main() {
|
|||
cred.deviceID = "libleet test client";
|
||||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
if (leet::checkIfUsernameIsAvailable(cred.Username)) {
|
||||
resp = leet::registerAccount(cred);
|
||||
|
|
|
@ -77,6 +77,8 @@ class Session : public std::enable_shared_from_this<Session> {
|
|||
|
||||
class Listener {
|
||||
public:
|
||||
boost::asio::io_context& apiIoc; // only made public to silence a warning
|
||||
|
||||
explicit Listener(boost::asio::io_context& ioc, boost::asio::ip::tcp::endpoint Endpoint)
|
||||
: apiIoc(ioc), apiAcceptor(ioc, Endpoint) {}
|
||||
|
||||
|
@ -85,7 +87,6 @@ class Listener {
|
|||
}
|
||||
|
||||
private:
|
||||
boost::asio::io_context& apiIoc;
|
||||
boost::asio::ip::tcp::acceptor apiAcceptor;
|
||||
|
||||
void acceptReq() {
|
||||
|
@ -117,7 +118,7 @@ const std::string returnRooms(const std::string& Body) {
|
|||
return ErrorResponse.dump();
|
||||
}
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
if (nlohmann::json::accept(Body)) {
|
||||
for (auto& it : Incoming) {
|
||||
|
@ -229,7 +230,7 @@ const std::string attemptLogin(const std::string& Body) {
|
|||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
}
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
resp = leet::loginAccount(cred);
|
||||
|
||||
nlohmann::json jsonResponse;
|
||||
|
|
|
@ -20,7 +20,7 @@ int main() {
|
|||
cred.deviceID = "libleet test client";
|
||||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
resp = leet::loginAccount(cred);
|
||||
|
||||
|
@ -28,7 +28,7 @@ int main() {
|
|||
|
||||
leet::transID = leet::returnUnixTimestamp();
|
||||
|
||||
leet::Sync::syncConfiguration conf;
|
||||
leet::Sync::SyncConfiguration conf;
|
||||
leet::Sync::Sync sync = leet::returnSync(resp, conf);
|
||||
|
||||
for (auto it : sync.megolmSessions) {
|
||||
|
|
|
@ -21,7 +21,7 @@ int main() {
|
|||
cred.deviceID = "libleet test client";
|
||||
cred.Homeserver = leet::returnServerDiscovery(leet::returnHomeServerFromString(cred.Username));
|
||||
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
resp = leet::loginAccount(cred);
|
||||
|
||||
|
@ -29,7 +29,7 @@ int main() {
|
|||
|
||||
leet::transID = leet::returnUnixTimestamp();
|
||||
|
||||
leet::Sync::syncConfiguration conf;
|
||||
leet::Sync::SyncConfiguration conf;
|
||||
leet::Sync::Sync sync = leet::returnSync(resp, conf);
|
||||
|
||||
std::ofstream file("output.txt");
|
||||
|
|
|
@ -29,7 +29,7 @@ int main() {
|
|||
|
||||
leet::transID = leet::returnUnixTimestamp();
|
||||
|
||||
leet::Sync::syncConfiguration conf;
|
||||
leet::Sync::SyncConfiguration conf;
|
||||
leet::Sync::Sync sync = leet::returnSync(resp, conf);
|
||||
|
||||
nlohmann::json obj = nlohmann::json::parse(sync.theRequest);
|
||||
|
|
|
@ -29,24 +29,24 @@ namespace leetCrypto {
|
|||
/**
|
||||
* @brief Class used to generate random bytes
|
||||
*/
|
||||
class randomBytes {
|
||||
class RandomBytes {
|
||||
private:
|
||||
public:
|
||||
void *_data;
|
||||
size_t _length;
|
||||
|
||||
randomBytes(size_t length): _data(malloc(length)), _length(length) {
|
||||
fillWithRandomBytes(_data, _length);
|
||||
RandomBytes(size_t length): _data(malloc(length)), _length(length) {
|
||||
fillWithRandomBytes(_data, _length);
|
||||
}
|
||||
~randomBytes() {
|
||||
memset(_data, 0, _length);
|
||||
free(_data);
|
||||
~RandomBytes() {
|
||||
memset(_data, 0, _length);
|
||||
free(_data);
|
||||
}
|
||||
size_t length() const {
|
||||
return _length;
|
||||
return _length;
|
||||
}
|
||||
void *data() const {
|
||||
return _data;
|
||||
void* data() const {
|
||||
return _data;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -143,7 +143,7 @@ namespace leet {
|
|||
/**
|
||||
* @brief Class which contains the response from the Matrix homeserver on initial login.
|
||||
*/
|
||||
class credentialsResponse { /* Only applies for the login account */
|
||||
class CredentialsResponse { /* Only applies for the login account */
|
||||
private:
|
||||
public:
|
||||
std::string accessToken{}; // Access token, which will be used to authenticate all future events for this session
|
||||
|
@ -192,7 +192,7 @@ namespace leet {
|
|||
public:
|
||||
std::string Username{}; // The TURN server username
|
||||
std::string Password{}; // The TURN server password
|
||||
int timeToLiveIn{};
|
||||
int timeToLiveIn{}; // Go figure.
|
||||
std::vector<std::string> URI{};
|
||||
};
|
||||
}
|
||||
|
@ -219,7 +219,7 @@ namespace leet {
|
|||
/**
|
||||
* @brief Class which represents settings for a single room that should be created.
|
||||
*/
|
||||
class roomConfiguration {
|
||||
class RoomConfiguration {
|
||||
private:
|
||||
public:
|
||||
bool Federate{false};
|
||||
|
@ -264,7 +264,7 @@ namespace leet {
|
|||
/**
|
||||
* @brief Class which represents a URL preview.
|
||||
*/
|
||||
class urlPreview {
|
||||
class URLPreview {
|
||||
private:
|
||||
public:
|
||||
std::string URL{};
|
||||
|
@ -284,7 +284,7 @@ namespace leet {
|
|||
/**
|
||||
* @brief Filter configuration, can be used to generate a filter which can be used to find an event ID by functions that make use of it.
|
||||
*/
|
||||
class filterConfiguration {
|
||||
class FilterConfiguration {
|
||||
private:
|
||||
public:
|
||||
std::vector<std::string> notSenders{}; // Senders to exclude
|
||||
|
@ -309,7 +309,7 @@ namespace leet {
|
|||
/**
|
||||
* @brief Class that represents a user event.
|
||||
*/
|
||||
class userEvent {
|
||||
class UserEvent {
|
||||
private:
|
||||
public:
|
||||
std::string userID{};
|
||||
|
@ -322,7 +322,7 @@ namespace leet {
|
|||
/**
|
||||
* @brief Class that represents a name event.
|
||||
*/
|
||||
class nameEvent {
|
||||
class NameEvent {
|
||||
private:
|
||||
public:
|
||||
std::string roomID{};
|
||||
|
@ -333,13 +333,13 @@ namespace leet {
|
|||
/**
|
||||
* @brief Class that represents a room event.
|
||||
*/
|
||||
class roomEvent {
|
||||
class RoomEvent {
|
||||
private:
|
||||
public:
|
||||
/**
|
||||
* @brief Class that represents an invite event.
|
||||
*/
|
||||
class inviteEvent {
|
||||
class InviteEvent {
|
||||
private:
|
||||
public:
|
||||
std::string roomID{}; // room id to join
|
||||
|
@ -358,30 +358,30 @@ namespace leet {
|
|||
/**
|
||||
* @brief Class that represents a join event.
|
||||
*/
|
||||
class joinEvent {
|
||||
class JoinEvent {
|
||||
private:
|
||||
public:
|
||||
};
|
||||
/**
|
||||
* @brief Class that represents a knock event.
|
||||
*/
|
||||
class knockEvent {
|
||||
class KnockEvent {
|
||||
private:
|
||||
public:
|
||||
};
|
||||
/**
|
||||
* @brief Class that represents a leave event.
|
||||
*/
|
||||
class leaveEvent {
|
||||
class LeaveEvent {
|
||||
private:
|
||||
public:
|
||||
};
|
||||
|
||||
std::vector<inviteEvent> Invites{};
|
||||
std::vector<InviteEvent> Invites{};
|
||||
};
|
||||
/**
|
||||
* @brief Class that represents a Megolm session sent in the room */
|
||||
class megolmSession {
|
||||
class MegolmSession {
|
||||
private:
|
||||
public:
|
||||
std::string Algorithm{};
|
||||
|
@ -397,10 +397,10 @@ namespace leet {
|
|||
class Sync {
|
||||
private:
|
||||
public:
|
||||
userEvent userEvents{};
|
||||
nameEvent nameEvents{};
|
||||
roomEvent roomEvents{};
|
||||
std::vector<megolmSession> megolmSessions{};
|
||||
UserEvent userEvents{};
|
||||
NameEvent nameEvents{};
|
||||
RoomEvent roomEvents{};
|
||||
std::vector<MegolmSession> megolmSessions{};
|
||||
std::string nextBatch{};
|
||||
std::string theRequest{};
|
||||
};
|
||||
|
@ -408,7 +408,7 @@ namespace leet {
|
|||
/**
|
||||
* @brief Class containing settings for a sync call
|
||||
*/
|
||||
class syncConfiguration {
|
||||
class SyncConfiguration {
|
||||
private:
|
||||
public:
|
||||
std::string Since{};
|
||||
|
@ -561,10 +561,10 @@ namespace leet {
|
|||
std::vector<std::string> returnSupportedSpecs();
|
||||
/**
|
||||
* @brief Return max upload size limit
|
||||
* @param credentialsResponse object, used for authentication.
|
||||
* @param CredentialsResponse object, used for authentication.
|
||||
* @return Max upload size limit in bytes.
|
||||
*/
|
||||
int returnMaxUploadLimit(const User::credentialsResponse& resp);
|
||||
int returnMaxUploadLimit(const User::CredentialsResponse& resp);
|
||||
|
||||
/**
|
||||
* @brief Check if an error occured.
|
||||
|
@ -575,9 +575,9 @@ namespace leet {
|
|||
/**
|
||||
* @brief Attempts to create an account on the home server.
|
||||
* @param cred Credentials object to use for registering
|
||||
* @return credentialsResponse object, containing the access token among other variables.
|
||||
* @return CredentialsResponse object, containing the access token among other variables.
|
||||
*/
|
||||
User::credentialsResponse registerAccount(const User::Credentials& cred);
|
||||
User::CredentialsResponse registerAccount(const User::Credentials& cred);
|
||||
/**
|
||||
* @brief Check if a registration token is still valid or not.
|
||||
* @param Token The token that should be validated.
|
||||
|
@ -588,15 +588,15 @@ namespace leet {
|
|||
/**
|
||||
* @brief Attempts to log in to the home server.
|
||||
* @param cred Credentials object to use for login
|
||||
* @return credentialsResponse object, containing the access token among other variables.
|
||||
* @return CredentialsResponse object, containing the access token among other variables.
|
||||
*/
|
||||
User::credentialsResponse loginAccount(const User::Credentials& cred);
|
||||
User::CredentialsResponse loginAccount(const User::Credentials& cred);
|
||||
/**
|
||||
* @brief Refresh an old access token (if a refresh token is available in the object)
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @return Returns a new User::credentialsResponse object based on the parameter.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @return Returns a new User::CredentialsResponse object based on the parameter.
|
||||
*/
|
||||
User::credentialsResponse refreshAccessToken(User::credentialsResponse& resp);
|
||||
User::CredentialsResponse refreshAccessToken(User::CredentialsResponse& resp);
|
||||
/**
|
||||
* @brief Invalidate an access token
|
||||
* @param Token Token to invalidate.
|
||||
|
@ -604,11 +604,11 @@ namespace leet {
|
|||
void invalidateAccessToken(const std::string& Token);
|
||||
/**
|
||||
* @brief Returns user data in the form of a User::Profile object.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param userID User to get data for.
|
||||
* @return Returns a User::Profile object containing the user data.
|
||||
*/
|
||||
User::Profile getUserData(const User::credentialsResponse& resp, const std::string& userID);
|
||||
User::Profile getUserData(const User::CredentialsResponse& resp, const std::string& userID);
|
||||
|
||||
/**
|
||||
* @brief Returns a full API URL from a Matrix endpoint.
|
||||
|
@ -694,106 +694,106 @@ namespace leet {
|
|||
|
||||
/**
|
||||
* @brief Gets information about a room based on a room ID.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @return Returns a Room object containing room data.
|
||||
*/
|
||||
Room::Room returnRoom(const User::credentialsResponse& resp, const Room::Room& room);
|
||||
Room::Room returnRoom(const User::CredentialsResponse& resp, const Room::Room& room);
|
||||
/**
|
||||
* @brief Upgrades a room to a specific room version.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @param Version Version integer.
|
||||
* @return Returns a room with a new room ID.
|
||||
*/
|
||||
Room::Room upgradeRoom(const User::credentialsResponse& resp, const Room::Room& room, const int Version);
|
||||
Room::Room upgradeRoom(const User::CredentialsResponse& resp, const Room::Room& room, const int Version);
|
||||
/**
|
||||
* @brief Create a room from a Room::roomConfiguration object.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @brief Create a room from a Room::RoomConfiguration object.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @parma conf Room configuration object, this object should contain room information.
|
||||
* @return Returns a Room object containing room data.
|
||||
*/
|
||||
Room::Room createRoom(const User::credentialsResponse& resp, const Room::roomConfiguration& conf);
|
||||
Room::Room createRoom(const User::CredentialsResponse& resp, const Room::RoomConfiguration& conf);
|
||||
|
||||
/**
|
||||
* @brief Join a public room or a room that you have been invited to.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @param Reason Reason for wanting to join.
|
||||
*/
|
||||
void joinRoom(const User::credentialsResponse& resp, const Room::Room& room, const std::string& Reason);
|
||||
void joinRoom(const User::CredentialsResponse& resp, const Room::Room& room, const std::string& Reason);
|
||||
/**
|
||||
* @brief Leave a room you're part of.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @param Reason Reason for leaving.
|
||||
*/
|
||||
void leaveRoom(const User::credentialsResponse& resp, const Room::Room& room, const std::string& Reason);
|
||||
void leaveRoom(const User::CredentialsResponse& resp, const Room::Room& room, const std::string& Reason);
|
||||
/**
|
||||
* @brief Kick a user from a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @param profile Profile object, this object should contain a user ID for the user to kick.
|
||||
* @param Reason Reason for kicking the user.
|
||||
*/
|
||||
void kickUserFromRoom(const User::credentialsResponse& resp, const Room::Room& room, const User::Profile& profile, const std::string& Reason);
|
||||
void kickUserFromRoom(const User::CredentialsResponse& resp, const Room::Room& room, const User::Profile& profile, const std::string& Reason);
|
||||
/**
|
||||
* @brief Ban a user from a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @param profile Profile object, this object should contain a user ID for the user to ban.
|
||||
* @param Reason Reason for banning the user.
|
||||
*/
|
||||
void banUserFromRoom(const User::credentialsResponse& resp, const Room::Room& room, const User::Profile& profile, const std::string& Reason);
|
||||
void banUserFromRoom(const User::CredentialsResponse& resp, const Room::Room& room, const User::Profile& profile, const std::string& Reason);
|
||||
/**
|
||||
* @brief Unban a user from a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @param profile Profile object, this object should contain a user ID for the user to unban.
|
||||
* @param Reason Reason for unbanning the user.
|
||||
*/
|
||||
void unbanUserFromRoom(const User::credentialsResponse& resp, const Room::Room& room, const User::Profile& profile, const std::string& Reason);
|
||||
void unbanUserFromRoom(const User::CredentialsResponse& resp, const Room::Room& room, const User::Profile& profile, const std::string& Reason);
|
||||
/**
|
||||
* @brief Invite a user to a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @param Reason Reason for the invite being sent.
|
||||
*/
|
||||
void inviteUserToRoom(const User::credentialsResponse& resp, const Room::Room& room, const std::string& Reason);
|
||||
void inviteUserToRoom(const User::CredentialsResponse& resp, const Room::Room& room, const std::string& Reason);
|
||||
/**
|
||||
* @brief Gets the visibility of a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @return Returns true if the room is visible, otherwise returns false.
|
||||
*/
|
||||
bool getVisibilityOfRoom(const User::credentialsResponse& resp, const Room::Room& room);
|
||||
bool getVisibilityOfRoom(const User::CredentialsResponse& resp, const Room::Room& room);
|
||||
/**
|
||||
* @brief Sets the visibility of a room to Visibility
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, this object should contain a room ID.
|
||||
* @param Visibility Boolean, true means visible, false means hidden.
|
||||
*/
|
||||
void setVisibilityOfRoom(const User::credentialsResponse& resp, const Room::Room& room, const bool Visibility);
|
||||
void setVisibilityOfRoom(const User::CredentialsResponse& resp, const Room::Room& room, const bool Visibility);
|
||||
/**
|
||||
* @brief Returns a vector of all rooms your user has joined.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param Limit Max number of rooms to return.
|
||||
* @return Returns a vector of all rooms your user has joined.
|
||||
*/
|
||||
std::vector<Room::Room> returnRooms(const User::credentialsResponse& resp, const int Limit);
|
||||
std::vector<Room::Room> returnRooms(const User::CredentialsResponse& resp, const int Limit);
|
||||
/**
|
||||
* @brief Returns room IDs for all the rooms your user has joined.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @return Returns room IDs for all the rooms your user has joined.
|
||||
*/
|
||||
std::vector<Room::Room> returnRoomIDs(const User::credentialsResponse& resp);
|
||||
std::vector<Room::Room> returnRoomIDs(const User::CredentialsResponse& resp);
|
||||
/**
|
||||
* @brief Returns room aliases from a room ID.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param roomID The room to get aliases from.
|
||||
* @return Returns an std::vector<std::string> containing room aliases.
|
||||
*/
|
||||
std::vector<std::string> findRoomAliases(const User::credentialsResponse& resp, const std::string& roomID);
|
||||
std::vector<std::string> findRoomAliases(const User::CredentialsResponse& resp, const std::string& roomID);
|
||||
/**
|
||||
* @brief Resolves a room alias and returns the room ID.
|
||||
* @param Alias Room alias to find the room ID from.
|
||||
|
@ -802,26 +802,26 @@ namespace leet {
|
|||
std::string findRoomID(const std::string& Alias);
|
||||
/**
|
||||
* @brief Removes a room alias from an undefined room ID.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param Alias The room alias to remove. The server will determine the room ID from this alias.
|
||||
* @return Returns a boolean, true if the room alias was successfully removed, otherwise false.
|
||||
*/
|
||||
bool removeRoomAlias(const User::credentialsResponse& resp, const std::string& Alias);
|
||||
bool removeRoomAlias(const User::CredentialsResponse& resp, const std::string& Alias);
|
||||
|
||||
/**
|
||||
* @brief Returns a vector of all spaces your user has joined.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param Limit Max number of spaces to return.
|
||||
* @return Returns a vector of all spaces, along with all child rooms your user has joined.
|
||||
*/
|
||||
std::vector<Space::Space> returnSpaces(const User::credentialsResponse& resp, const int Limit);
|
||||
std::vector<Space::Space> returnSpaces(const User::CredentialsResponse& resp, const int Limit);
|
||||
/**
|
||||
* @brief Returns a vector of all rooms in a space.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param spaceID Space ID to get rooms from.
|
||||
* @return Returns a vector of all rooms in the space.
|
||||
*/
|
||||
const std::vector<Room::Room> returnRoomsInSpace(const User::credentialsResponse& resp, const std::string& spaceID, const int Limit);
|
||||
const std::vector<Room::Room> returnRoomsInSpace(const User::CredentialsResponse& resp, const std::string& spaceID, const int Limit);
|
||||
|
||||
/**
|
||||
* @brief Converts an incomplete user ID to a full user ID. (i.e. speedie is converted to @speedie:matrix.org)
|
||||
|
@ -838,19 +838,19 @@ namespace leet {
|
|||
std::string returnUserName(const std::string& userID);
|
||||
/**
|
||||
* @brief Returns a vector of all users in a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, the function uses the room ID, which must be set.
|
||||
* @return Returns a vector of all users in a room.
|
||||
*/
|
||||
std::vector<User::Profile> returnUsersInRoom(const User::credentialsResponse& resp, const Room::Room& room);
|
||||
std::vector<User::Profile> returnUsersInRoom(const User::CredentialsResponse& resp, const Room::Room& room);
|
||||
|
||||
/**
|
||||
* @brief Returns a vector of all devices for a specific user.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param user User vector, each User must have the user ID set.
|
||||
* @return Returns a vector of all devices for a specific user.
|
||||
*/
|
||||
std::vector<User::Device> returnDevicesFromUser(const User::credentialsResponse& resp, const std::vector<User::Profile>& user);
|
||||
std::vector<User::Device> returnDevicesFromUser(const User::CredentialsResponse& resp, const std::vector<User::Profile>& user);
|
||||
|
||||
/**
|
||||
* @brief Returns a boolean for whether a username is available on the home server or not.
|
||||
|
@ -861,79 +861,79 @@ namespace leet {
|
|||
|
||||
/**
|
||||
* @brief Toggles typing in a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param Timeout How long to type for.
|
||||
* @param Typing Boolean, whether or not we should be typing or not.
|
||||
* @param room Room to send the event in.
|
||||
*/
|
||||
void toggleTyping(const User::credentialsResponse& resp, const int Timeout, const bool Typing, const Room::Room& room);
|
||||
void toggleTyping(const User::CredentialsResponse& resp, const int Timeout, const bool Typing, const Room::Room& room);
|
||||
|
||||
/**
|
||||
* @brief Sets the read marker position to a specific event
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room to set the read marker in.
|
||||
* @param fullyReadEvent Event to place the marker at.
|
||||
* @param readEvent Event to set the read receipt at.
|
||||
* @param privateReadEvent Event to set the private read receipt at.
|
||||
*/
|
||||
void setReadMarkerPosition(const User::credentialsResponse& resp, const Room::Room& room,
|
||||
void setReadMarkerPosition(const User::CredentialsResponse& resp, const Room::Room& room,
|
||||
const Event::Event& fullyReadEvent, const Event::Event& readEvent, const Event::Event& privateReadEvent);
|
||||
|
||||
/**
|
||||
* @brief Sends a plain text message to the specified room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, room that the message should be sent in.
|
||||
* @param msg Event::Message object, the message that should be sent.
|
||||
*/
|
||||
void sendMessage(const User::credentialsResponse& resp, const Room::Room& room, const Event::Message& msg);
|
||||
void sendMessage(const User::CredentialsResponse& resp, const Room::Room& room, const Event::Message& msg);
|
||||
/**
|
||||
* @brief Returns a Event::Message vector from a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object, room that the messages should be retrieved from.
|
||||
* @param messageCount Number of messages to retrieve from the room.
|
||||
* @return Returns a Event::Message vector which represents the retrieved messages.
|
||||
*/
|
||||
std::vector<Event::Message> returnMessages(const User::credentialsResponse& resp, const Room::Room& room, const int messageCount);
|
||||
std::vector<Event::Message> returnMessages(const User::CredentialsResponse& resp, const Room::Room& room, const int messageCount);
|
||||
|
||||
/**
|
||||
* @brief Returns a filter ID which can be used when requesting data.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param filter Filter configuration.
|
||||
* @return Returns a filter ID which can be used when requesting data.
|
||||
*/
|
||||
Filter::Filter returnFilter(const User::credentialsResponse& resp, const Filter::filterConfiguration& filter);
|
||||
Filter::Filter returnFilter(const User::CredentialsResponse& resp, const Filter::FilterConfiguration& filter);
|
||||
|
||||
/**
|
||||
* @brief Uploads a file to the Matrix server(s).
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param File Path to the file which should be uploaded.
|
||||
* @return Returns an Attachment::Attachment object containing an mxc:// Matrix URL.
|
||||
*/
|
||||
Attachment::Attachment uploadFile(const User::credentialsResponse& resp, const std::string& File);
|
||||
Attachment::Attachment uploadFile(const User::CredentialsResponse& resp, const std::string& File);
|
||||
/**
|
||||
* @brief Downloads a file from the Matrix server.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param File Attachment object containing an mxc:// URL to download from.
|
||||
* @param outputFile Output file path.
|
||||
* @return Returns true if it was downloaded successfully, otherwise false is returned.
|
||||
*/
|
||||
bool downloadFile(const User::credentialsResponse& resp, const Attachment::Attachment& Attachment, const std::string& outputFile);
|
||||
bool downloadFile(const User::CredentialsResponse& resp, const Attachment::Attachment& Attachment, const std::string& outputFile);
|
||||
|
||||
/**
|
||||
* @brief Get a URL preview by calling a Matrix media endpoint. Do not call in encrypted rooms.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param URL The URL to get a preview for.
|
||||
* @param time The point in time to get a preview for. Specify 0 if you want the latest preview.
|
||||
* @return Returns a urlPreview object containing the response data.
|
||||
* @return Returns a URLPreview object containing the response data.
|
||||
*/
|
||||
URL::urlPreview getURLPreview(const User::credentialsResponse& resp, const std::string& URL, const int64_t time);
|
||||
URL::URLPreview getURLPreview(const User::CredentialsResponse& resp, const std::string& URL, const int64_t time);
|
||||
/**
|
||||
* @brief Gets a download link for an attachment from the Matrix server.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param File Attachment object containing an mxc:// URL to download from.
|
||||
* @return Returns a URL in the form of an std::string
|
||||
*/
|
||||
std::string decodeFile(const User::credentialsResponse& resp, const Attachment::Attachment& Attachment);
|
||||
std::string decodeFile(const User::CredentialsResponse& resp, const Attachment::Attachment& Attachment);
|
||||
|
||||
/**
|
||||
* @brief Gets the Unix timestamp
|
||||
|
@ -942,72 +942,72 @@ namespace leet {
|
|||
int64_t returnUnixTimestamp();
|
||||
/**
|
||||
* @brief Get an event from a Unix timestamp.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object to get event(s) from.
|
||||
* @param Timestamp Unix timestamp for the event.
|
||||
* @param Direction Boolean which specifies which direction to search for events in. true means forward while false means backwards.
|
||||
* @return Returns the event. If none could be found, an empty object is simply returned instead.
|
||||
*/
|
||||
Event::Event returnEventFromTimestamp(const User::credentialsResponse& resp, const Room::Room& room, const int64_t Timestamp, const bool Direction);
|
||||
Event::Event returnEventFromTimestamp(const User::CredentialsResponse& resp, const Room::Room& room, const int64_t Timestamp, const bool Direction);
|
||||
/**
|
||||
* @brief Gets the latest event sent in the room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object to get an event from.
|
||||
*
|
||||
* Note that this function is just a convenient wrapper for returnEventFromTimestamp()
|
||||
*/
|
||||
Event::Event returnLatestEvent(const User::credentialsResponse& resp, const Room::Room& room);
|
||||
Event::Event returnLatestEvent(const User::CredentialsResponse& resp, const Room::Room& room);
|
||||
/**
|
||||
* @brief Get a state from a room ID, type and state key
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object to get an event from.
|
||||
* @param eventType Event type to get.
|
||||
* @param stateKey State key, most of the time you can just specify an empty string.
|
||||
* @return Returns an Event object.
|
||||
*/
|
||||
Event::Event getStateFromType(const User::credentialsResponse& resp, const Room::Room& room, const std::string& eventType, const std::string& stateKey);
|
||||
Event::Event getStateFromType(const User::CredentialsResponse& resp, const Room::Room& room, const std::string& eventType, const std::string& stateKey);
|
||||
/**
|
||||
* @brief Set a state from a room ID, type and state key. If a state already exists, it will be replaced.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object to get an event from.
|
||||
* @param eventType Event type to get.
|
||||
* @param stateKey State key, most of the time you can just specify an empty string.
|
||||
* @param Body The body to include in the state.
|
||||
* @return Returns an Event object.
|
||||
*/
|
||||
Event::Event setStateFromType(const User::credentialsResponse& resp, const Room::Room& room, const std::string& eventType, const std::string& stateKey, const std::string& Body);
|
||||
Event::Event setStateFromType(const User::CredentialsResponse& resp, const Room::Room& room, const std::string& eventType, const std::string& stateKey, const std::string& Body);
|
||||
|
||||
/**
|
||||
* @brief Redact an event sent in a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room object to get an event from.
|
||||
* @param event The event to redact.
|
||||
* @param Reason Reason for the redaction.
|
||||
*/
|
||||
void redactEvent(const User::credentialsResponse& resp, const Room::Room& room, const Event::Event& event, const std::string& Reason);
|
||||
void redactEvent(const User::CredentialsResponse& resp, const Room::Room& room, const Event::Event& event, const std::string& Reason);
|
||||
/**
|
||||
* @brief Report an event to the home server owner.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room Room the event can be found in.
|
||||
* @param event The event to report.
|
||||
* @param Reason Reason for the report being made.
|
||||
* @param Score A score between -100 and 0 with -100 being the most offensive and 0 is inoffensive. If the integer is not in this range 0 will be used.
|
||||
*/
|
||||
void reportEvent(const User::credentialsResponse& resp, const Room::Room& room, const Event::Event& event, const std::string& Reason, const int Score);
|
||||
void reportEvent(const User::CredentialsResponse& resp, const Room::Room& room, const Event::Event& event, const std::string& Reason, const int Score);
|
||||
|
||||
/**
|
||||
* @brief Get sync information from the server.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @return Returns a Sync object with the fields.
|
||||
*/
|
||||
Sync::Sync returnSync(const User::credentialsResponse& resp, const Sync::syncConfiguration& conf);
|
||||
Sync::Sync returnSync(const User::CredentialsResponse& resp, const Sync::SyncConfiguration& conf);
|
||||
|
||||
/**
|
||||
* @brief Get TURN server credentials
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @return Returns a VOIP::Credentials object.
|
||||
*/
|
||||
VOIP::Credentials returnTurnCredentials(const User::credentialsResponse& resp);
|
||||
VOIP::Credentials returnTurnCredentials(const User::CredentialsResponse& resp);
|
||||
|
||||
#ifndef LEET_NO_ENCRYPTION
|
||||
/**
|
||||
|
@ -1091,27 +1091,27 @@ namespace leet {
|
|||
|
||||
/**
|
||||
* @brief Uploads the device keys
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
*/
|
||||
void upload(const leet::User::credentialsResponse& resp);
|
||||
void upload(const leet::User::CredentialsResponse& resp);
|
||||
|
||||
/**
|
||||
* @brief Creates a session with one or more users in the current room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param room The room to send and create the event in.
|
||||
* @param users Vector of users to create a session with.
|
||||
*/
|
||||
void createSession(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const std::vector<leet::User::Profile>& users);
|
||||
void createSession(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const std::vector<leet::User::Profile>& users);
|
||||
|
||||
/**
|
||||
* @brief Encrypt a message.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param message Message to encrypt.
|
||||
* @return Returns a json string containing the encrypted cipher text.
|
||||
*
|
||||
* Returns string json containing encrypted cipher text, which can then be uploaded to the server as an event
|
||||
*/
|
||||
std::string encryptMessage(const leet::User::credentialsResponse& resp, const std::string& message);
|
||||
std::string encryptMessage(const leet::User::CredentialsResponse& resp, const std::string& message);
|
||||
|
||||
/**
|
||||
* @brief Clean up by clearing the Olm account.
|
||||
|
@ -1155,27 +1155,27 @@ namespace leet {
|
|||
Encryption initEncryptionFromPickle(const std::string& pickleKey, const std::string& pickleData);
|
||||
/**
|
||||
* @brief Function that uploads encryption keys for your account to the Matrix home server.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param enc Encryption object.
|
||||
* @return Returns an Encryption object.
|
||||
*/
|
||||
Encryption uploadKeys(const User::credentialsResponse& resp, Encryption& enc);
|
||||
Encryption uploadKeys(const User::CredentialsResponse& resp, Encryption& enc);
|
||||
/**
|
||||
* @brief Creates a session in a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param enc Encryption object.
|
||||
* @param room Room to create a session in.
|
||||
* @return Returns an Encryption object.
|
||||
*/
|
||||
Encryption createSessionInRoom(const User::credentialsResponse& resp, Encryption& enc, const Room::Room& room);
|
||||
Encryption createSessionInRoom(const User::CredentialsResponse& resp, Encryption& enc, const Room::Room& room);
|
||||
/**
|
||||
* @brief Sends an encrypted message to a room.
|
||||
* @param resp credentialsResponse object, required for authentication.
|
||||
* @param resp CredentialsResponse object, required for authentication.
|
||||
* @param enc Encryption object.
|
||||
* @param room Room to create a session in.
|
||||
* @param msg Message to send.
|
||||
*/
|
||||
void sendEncryptedMessage(const User::credentialsResponse& resp, Encryption& enc, const Room::Room& room, const Event::Message& msg);
|
||||
void sendEncryptedMessage(const User::CredentialsResponse& resp, Encryption& enc, const Room::Room& room, const Event::Message& msg);
|
||||
|
||||
#endif // #ifndef LEET_NO_ENCRYPTION
|
||||
}
|
||||
|
|
5
setup.ps1
Executable file
5
setup.ps1
Executable file
|
@ -0,0 +1,5 @@
|
|||
if (-Not (Test-Path "build")) {
|
||||
meson setup build
|
||||
}
|
||||
|
||||
ninja -C build/
|
3
setup.sh
Executable file
3
setup.sh
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
[ ! -d "build" ] && meson setup build/ --prefix=/usr
|
||||
ninja -C build/
|
136
src/libleet.cpp
136
src/libleet.cpp
|
@ -20,9 +20,9 @@
|
|||
#include <crypto/olm.hpp>
|
||||
|
||||
namespace leetFunction { // contains functions that are used in libleet API functions
|
||||
void getSessionsFromSync(const leet::User::credentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it);
|
||||
void getRoomEventsFromSync(const leet::User::credentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it);
|
||||
void getInvitesFromSync(const leet::User::credentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it);
|
||||
void getSessionsFromSync(const leet::User::CredentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it);
|
||||
void getRoomEventsFromSync(const leet::User::CredentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it);
|
||||
void getInvitesFromSync(const leet::User::CredentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it);
|
||||
}
|
||||
|
||||
void leet::olmAccount::createAccount() {
|
||||
|
@ -34,9 +34,9 @@ void leet::olmAccount::createAccount() {
|
|||
throw std::runtime_error{ "createAccount(): Cannot allocate memory because it is already allocated." };
|
||||
}
|
||||
|
||||
leetCrypto::randomBytes randomBytes(olm_create_account_random_length(leetOlm::Account));
|
||||
leetCrypto::RandomBytes RandomBytes(olm_create_account_random_length(leetOlm::Account));
|
||||
|
||||
if (olm_create_account(leetOlm::Account, randomBytes.data(), randomBytes.length()) == olm_error()) {
|
||||
if (olm_create_account(leetOlm::Account, RandomBytes.data(), RandomBytes.length()) == olm_error()) {
|
||||
throw std::runtime_error("olm_create_account()");
|
||||
}
|
||||
}
|
||||
|
@ -59,9 +59,9 @@ void leet::olmAccount::createMegolmSession() {
|
|||
} else {
|
||||
throw std::runtime_error{ "createMegolmSession(): Cannot allocate memory because it is already allocated. (1)" };
|
||||
}
|
||||
leetCrypto::randomBytes randomBytesSession(olm_init_outbound_group_session_random_length(leetOlm::megolmSession));
|
||||
leetCrypto::RandomBytes RandomBytesSession(olm_init_outbound_group_session_random_length(leetOlm::megolmSession));
|
||||
|
||||
if (olm_init_outbound_group_session(leetOlm::megolmSession, static_cast<uint8_t* >(randomBytesSession.data()), randomBytesSession.length()) == olm_error()) {
|
||||
if (olm_init_outbound_group_session(leetOlm::megolmSession, static_cast<uint8_t* >(RandomBytesSession.data()), RandomBytesSession.length()) == olm_error()) {
|
||||
free(megolmSessionMemory);
|
||||
megolmSessionMemoryAllocated = false;
|
||||
throw std::runtime_error("olm_init_outbound_group_session()");
|
||||
|
@ -152,7 +152,7 @@ void leet::olmAccount::createIdentity() {
|
|||
identityMemoryAllocated = false;
|
||||
}
|
||||
|
||||
void leet::olmAccount::upload(const leet::User::credentialsResponse& resp) {
|
||||
void leet::olmAccount::upload(const leet::User::CredentialsResponse& resp) {
|
||||
if (!curve25519.compare("")) {
|
||||
throw std::runtime_error{ "upload(): Identity not allocated." };
|
||||
}
|
||||
|
@ -248,9 +248,9 @@ void leet::olmAccount::upload(const leet::User::credentialsResponse& resp) {
|
|||
if (keysNeeded > keysAvailable) {
|
||||
int keysToGenerate = keysNeeded - keysAvailable;
|
||||
std::size_t otkRandomLength = olm_account_generate_one_time_keys_random_length(leetOlm::Account, keysToGenerate);
|
||||
leetCrypto::randomBytes randomBytes(otkRandomLength);
|
||||
leetCrypto::RandomBytes RandomBytes(otkRandomLength);
|
||||
|
||||
if (olm_account_generate_one_time_keys(leetOlm::Account, keysToGenerate, randomBytes.data(), randomBytes.length()) == olm_error()) {
|
||||
if (olm_account_generate_one_time_keys(leetOlm::Account, keysToGenerate, RandomBytes.data(), RandomBytes.length()) == olm_error()) {
|
||||
throw std::runtime_error("olm_account_generate_one_time_keys()");
|
||||
}
|
||||
|
||||
|
@ -317,7 +317,7 @@ void leet::olmAccount::upload(const leet::User::credentialsResponse& resp) {
|
|||
}
|
||||
}
|
||||
|
||||
void leet::olmAccount::createSession(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const std::vector<leet::User::Profile>& users) {
|
||||
void leet::olmAccount::createSession(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const std::vector<leet::User::Profile>& users) {
|
||||
if (!megolmSessionMemoryAllocated) {
|
||||
throw std::runtime_error{ "createSession(): Megolm session not allocated." };
|
||||
}
|
||||
|
@ -427,9 +427,9 @@ void leet::olmAccount::createSession(const leet::User::credentialsResponse& resp
|
|||
// Store the session
|
||||
leetOlm::olmSessions[output.userID+output.curve25519Key+output.deviceID] = Session;
|
||||
|
||||
leetCrypto::randomBytes randomBytes(olm_create_outbound_session_random_length(Session));
|
||||
leetCrypto::RandomBytes RandomBytes(olm_create_outbound_session_random_length(Session));
|
||||
|
||||
if (olm_create_outbound_session(Session, leetOlm::Account, output.curve25519Key.data(), output.curve25519Key.length(), Otk.data(), Otk.length(), randomBytes.data(), randomBytes.length()) == olm_error()) {
|
||||
if (olm_create_outbound_session(Session, leetOlm::Account, output.curve25519Key.data(), output.curve25519Key.length(), Otk.data(), Otk.length(), RandomBytes.data(), RandomBytes.length()) == olm_error()) {
|
||||
throw std::runtime_error("olm_create_outbound_session()");
|
||||
}
|
||||
|
||||
|
@ -452,11 +452,11 @@ void leet::olmAccount::createSession(const leet::User::credentialsResponse& resp
|
|||
|
||||
const std::string roomKeyMsg = roomKey.dump();
|
||||
|
||||
leetCrypto::randomBytes randomBytesEncrypt(olm_encrypt_random_length(Session));
|
||||
leetCrypto::RandomBytes RandomBytesEncrypt(olm_encrypt_random_length(Session));
|
||||
std::size_t cipherTextLength = olm_encrypt_message_length(Session, roomKeyMsg.length());
|
||||
char* cipherText = (char* )malloc(cipherTextLength + 1);
|
||||
|
||||
tSize = olm_encrypt(Session, roomKeyMsg.data(), roomKeyMsg.length(), randomBytesEncrypt.data(), randomBytesEncrypt.length(), cipherText, cipherTextLength);
|
||||
tSize = olm_encrypt(Session, roomKeyMsg.data(), roomKeyMsg.length(), RandomBytesEncrypt.data(), RandomBytesEncrypt.length(), cipherText, cipherTextLength);
|
||||
|
||||
if (tSize == olm_error()) {
|
||||
free(cipherText);
|
||||
|
@ -490,7 +490,7 @@ void leet::olmAccount::createSession(const leet::User::credentialsResponse& resp
|
|||
utilityMemoryAllocated = false;
|
||||
}
|
||||
|
||||
std::string leet::olmAccount::encryptMessage(const leet::User::credentialsResponse& resp, const std::string& message) {
|
||||
std::string leet::olmAccount::encryptMessage(const leet::User::CredentialsResponse& resp, const std::string& message) {
|
||||
std::size_t cipherTextLength = olm_group_encrypt_message_length(leetOlm::megolmSession, message.length());
|
||||
char* cipherText = (char* )malloc(cipherTextLength + 1);
|
||||
std::size_t tSize = olm_group_encrypt(leetOlm::megolmSession, (uint8_t* )message.data(), message.length(), (uint8_t* )cipherText, cipherTextLength);
|
||||
|
@ -563,7 +563,7 @@ leet::Encryption leet::initEncryptionFromPickle(const std::string& pickleKey, co
|
|||
return enc;
|
||||
}
|
||||
|
||||
leet::Encryption leet::uploadKeys(const leet::User::credentialsResponse& resp, leet::Encryption& enc) {
|
||||
leet::Encryption leet::uploadKeys(const leet::User::CredentialsResponse& resp, leet::Encryption& enc) {
|
||||
if (!enc.hasCreatedAccount) {
|
||||
throw std::runtime_error{ "olmAccount: Account has not been created." };
|
||||
}
|
||||
|
@ -578,7 +578,7 @@ leet::Encryption leet::uploadKeys(const leet::User::credentialsResponse& resp, l
|
|||
return enc;
|
||||
}
|
||||
|
||||
leet::Encryption leet::createSessionInRoom(const leet::User::credentialsResponse& resp, leet::Encryption& enc, const leet::Room::Room& room) {
|
||||
leet::Encryption leet::createSessionInRoom(const leet::User::CredentialsResponse& resp, leet::Encryption& enc, const leet::Room::Room& room) {
|
||||
if (!enc.hasCreatedAccount) {
|
||||
throw std::runtime_error{ "olmAccount: Account has not been created." };
|
||||
}
|
||||
|
@ -630,7 +630,7 @@ void leet::invalidateAccessToken(const std::string& Token) {
|
|||
leet::invokeRequest_Post(leet::getAPI("/_matrix/client/v3/logout"), Token);
|
||||
}
|
||||
|
||||
leet::User::credentialsResponse leet::refreshAccessToken(leet::User::credentialsResponse& resp) {
|
||||
leet::User::CredentialsResponse leet::refreshAccessToken(leet::User::CredentialsResponse& resp) {
|
||||
if (!resp.refreshToken.compare("")) {
|
||||
return resp;
|
||||
}
|
||||
|
@ -690,8 +690,8 @@ bool leet::checkRegistrationTokenValidity(const std::string& Token) {
|
|||
return false;
|
||||
}
|
||||
|
||||
leet::User::credentialsResponse leet::registerAccount(const leet::User::Credentials& cred) {
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse leet::registerAccount(const leet::User::Credentials& cred) {
|
||||
leet::User::CredentialsResponse resp;
|
||||
|
||||
std::string theUsername = cred.Username;
|
||||
|
||||
|
@ -745,8 +745,8 @@ leet::User::credentialsResponse leet::registerAccount(const leet::User::Credenti
|
|||
return resp;
|
||||
}
|
||||
|
||||
leet::User::credentialsResponse leet::loginAccount(const leet::User::Credentials& cred) {
|
||||
leet::User::credentialsResponse resp;
|
||||
leet::User::CredentialsResponse leet::loginAccount(const leet::User::Credentials& cred) {
|
||||
leet::User::CredentialsResponse resp;
|
||||
nlohmann::json list;
|
||||
|
||||
std::string actualType{};
|
||||
|
@ -1080,7 +1080,7 @@ std::string leet::returnUserName(const std::string& userID) {
|
|||
return str;
|
||||
}
|
||||
|
||||
leet::User::Profile leet::getUserData(const leet::User::credentialsResponse& resp, const std::string& userID) {
|
||||
leet::User::Profile leet::getUserData(const leet::User::CredentialsResponse& resp, const std::string& userID) {
|
||||
leet::errorCode = 0;
|
||||
leet::User::Profile profile;
|
||||
|
||||
|
@ -1126,7 +1126,7 @@ leet::User::Profile leet::getUserData(const leet::User::credentialsResponse& res
|
|||
return profile;
|
||||
}
|
||||
|
||||
std::vector<leet::User::Device> leet::returnDevicesFromUser(const leet::User::credentialsResponse& resp, const std::vector<leet::User::Profile>& user) {
|
||||
std::vector<leet::User::Device> leet::returnDevicesFromUser(const leet::User::CredentialsResponse& resp, const std::vector<leet::User::Profile>& user) {
|
||||
std::vector<leet::User::Device> devices;
|
||||
|
||||
nlohmann::json Body;
|
||||
|
@ -1229,7 +1229,7 @@ bool leet::checkIfUsernameIsAvailable(const std::string& Username) {
|
|||
return false;
|
||||
}
|
||||
|
||||
std::vector<leet::User::Profile> leet::returnUsersInRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room) {
|
||||
std::vector<leet::User::Profile> leet::returnUsersInRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room) {
|
||||
std::vector<leet::User::Profile> vector;
|
||||
|
||||
const std::string Output = leet::invokeRequest_Get(leet::getAPI("/_matrix/client/v3/rooms/" + room.roomID + "/joined_members"), resp.accessToken);
|
||||
|
@ -1262,7 +1262,7 @@ std::vector<leet::User::Profile> leet::returnUsersInRoom(const leet::User::crede
|
|||
return vector;
|
||||
}
|
||||
|
||||
std::vector<std::string> leet::findRoomAliases(const leet::User::credentialsResponse& resp, const std::string& roomID) {
|
||||
std::vector<std::string> leet::findRoomAliases(const leet::User::CredentialsResponse& resp, const std::string& roomID) {
|
||||
std::vector<std::string> ret;
|
||||
const std::string Output = leet::invokeRequest_Get(leet::getAPI("/_matrix/client/v3/rooms/" + roomID + "/aliases"), resp.accessToken);
|
||||
|
||||
|
@ -1326,7 +1326,7 @@ std::string leet::findRoomID(const std::string& Alias) {
|
|||
return "";
|
||||
}
|
||||
|
||||
bool leet::removeRoomAlias(const leet::User::credentialsResponse& resp, const std::string& Alias) {
|
||||
bool leet::removeRoomAlias(const leet::User::CredentialsResponse& resp, const std::string& Alias) {
|
||||
std::string ret = Alias;
|
||||
leet::errorCode = 0;
|
||||
|
||||
|
@ -1364,7 +1364,7 @@ bool leet::removeRoomAlias(const leet::User::credentialsResponse& resp, const st
|
|||
return false;
|
||||
}
|
||||
|
||||
std::vector<leet::Room::Room> leet::returnRooms(const leet::User::credentialsResponse& resp, const int Limit) {
|
||||
std::vector<leet::Room::Room> leet::returnRooms(const leet::User::CredentialsResponse& resp, const int Limit) {
|
||||
std::vector<leet::Room::Room> vector;
|
||||
std::vector<leet::Room::Room> vectorWithVal;
|
||||
|
||||
|
@ -1394,7 +1394,7 @@ std::vector<leet::Room::Room> leet::returnRooms(const leet::User::credentialsRes
|
|||
return vectorWithVal;
|
||||
}
|
||||
|
||||
leet::Room::Room leet::returnRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room) {
|
||||
leet::Room::Room leet::returnRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room) {
|
||||
leet::Room::Room theRoom;
|
||||
nlohmann::json returnOutput;
|
||||
|
||||
|
@ -1422,7 +1422,7 @@ leet::Room::Room leet::returnRoom(const leet::User::credentialsResponse& resp, c
|
|||
return theRoom;
|
||||
}
|
||||
|
||||
leet::Room::Room leet::upgradeRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const int Version) {
|
||||
leet::Room::Room leet::upgradeRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const int Version) {
|
||||
const std::string APIUrl { "/_matrix/client/v3/rooms/" + room.roomID + "/upgrade" };
|
||||
|
||||
nlohmann::json body;
|
||||
|
@ -1457,7 +1457,7 @@ leet::Room::Room leet::upgradeRoom(const leet::User::credentialsResponse& resp,
|
|||
return room;
|
||||
}
|
||||
|
||||
leet::Room::Room leet::createRoom(const leet::User::credentialsResponse& resp, const leet::Room::roomConfiguration& conf) {
|
||||
leet::Room::Room leet::createRoom(const leet::User::CredentialsResponse& resp, const leet::Room::RoomConfiguration& conf) {
|
||||
leet::Room::Room theRoom;
|
||||
nlohmann::json theJson;
|
||||
|
||||
|
@ -1495,7 +1495,7 @@ leet::Room::Room leet::createRoom(const leet::User::credentialsResponse& resp, c
|
|||
return leet::returnRoom(resp, theRoom);
|
||||
}
|
||||
|
||||
std::vector<leet::Room::Room> leet::returnRoomIDs(const leet::User::credentialsResponse& resp) {
|
||||
std::vector<leet::Room::Room> leet::returnRoomIDs(const leet::User::CredentialsResponse& resp) {
|
||||
std::vector<leet::Room::Room> vector;
|
||||
|
||||
const std::string Output = leet::invokeRequest_Get(leet::getAPI("/_matrix/client/v3/joined_rooms"), resp.accessToken);
|
||||
|
@ -1518,7 +1518,7 @@ std::vector<leet::Room::Room> leet::returnRoomIDs(const leet::User::credentialsR
|
|||
return vector;
|
||||
}
|
||||
|
||||
const std::vector<leet::Room::Room> leet::returnRoomsInSpace(const leet::User::credentialsResponse& resp, const std::string& spaceID, const int Limit) {
|
||||
const std::vector<leet::Room::Room> leet::returnRoomsInSpace(const leet::User::CredentialsResponse& resp, const std::string& spaceID, const int Limit) {
|
||||
std::vector<leet::Room::Room> rooms;
|
||||
if (spaceID[0] != '!') {
|
||||
return rooms;
|
||||
|
@ -1555,7 +1555,7 @@ const std::vector<leet::Room::Room> leet::returnRoomsInSpace(const leet::User::c
|
|||
return rooms;
|
||||
}
|
||||
|
||||
std::vector<leet::Space::Space> leet::returnSpaces(const leet::User::credentialsResponse& resp, const int Limit) {
|
||||
std::vector<leet::Space::Space> leet::returnSpaces(const leet::User::CredentialsResponse& resp, const int Limit) {
|
||||
std::vector<leet::Space::Space> spaces;
|
||||
std::vector<leet::Room::Room> rooms = leet::returnRoomIDs(resp);
|
||||
|
||||
|
@ -1590,7 +1590,7 @@ std::vector<leet::Space::Space> leet::returnSpaces(const leet::User::credentials
|
|||
return spaces;
|
||||
}
|
||||
|
||||
void leet::toggleTyping(const leet::User::credentialsResponse& resp, const int Timeout, const bool Typing, const leet::Room::Room& room) {
|
||||
void leet::toggleTyping(const leet::User::CredentialsResponse& resp, const int Timeout, const bool Typing, const leet::Room::Room& room) {
|
||||
nlohmann::json list;
|
||||
|
||||
list["timeout"] = Timeout;
|
||||
|
@ -1617,7 +1617,7 @@ void leet::toggleTyping(const leet::User::credentialsResponse& resp, const int T
|
|||
}
|
||||
}
|
||||
|
||||
void leet::inviteUserToRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const std::string& Reason) {
|
||||
void leet::inviteUserToRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const std::string& Reason) {
|
||||
nlohmann::json request;
|
||||
|
||||
request["reason"] = Reason;
|
||||
|
@ -1643,7 +1643,7 @@ void leet::inviteUserToRoom(const leet::User::credentialsResponse& resp, const l
|
|||
}
|
||||
}
|
||||
|
||||
void leet::joinRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const std::string& Reason) {
|
||||
void leet::joinRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const std::string& Reason) {
|
||||
nlohmann::json body;
|
||||
|
||||
if (!Reason.compare("")) {
|
||||
|
@ -1673,7 +1673,7 @@ void leet::joinRoom(const leet::User::credentialsResponse& resp, const leet::Roo
|
|||
// You may want to refresh your room list and call /sync after this
|
||||
}
|
||||
|
||||
void leet::leaveRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const std::string& Reason) {
|
||||
void leet::leaveRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const std::string& Reason) {
|
||||
nlohmann::json body;
|
||||
|
||||
if (!Reason.compare("")) {
|
||||
|
@ -1701,7 +1701,7 @@ void leet::leaveRoom(const leet::User::credentialsResponse& resp, const leet::Ro
|
|||
}
|
||||
}
|
||||
|
||||
void leet::kickUserFromRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const leet::User::Profile& profile, const std::string& Reason) {
|
||||
void leet::kickUserFromRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const leet::User::Profile& profile, const std::string& Reason) {
|
||||
nlohmann::json body;
|
||||
|
||||
if (!Reason.compare("")) {
|
||||
|
@ -1731,7 +1731,7 @@ void leet::kickUserFromRoom(const leet::User::credentialsResponse& resp, const l
|
|||
}
|
||||
}
|
||||
|
||||
void leet::banUserFromRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const leet::User::Profile& profile, const std::string& Reason) {
|
||||
void leet::banUserFromRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const leet::User::Profile& profile, const std::string& Reason) {
|
||||
nlohmann::json body;
|
||||
|
||||
if (!Reason.compare("")) {
|
||||
|
@ -1761,7 +1761,7 @@ void leet::banUserFromRoom(const leet::User::credentialsResponse& resp, const le
|
|||
}
|
||||
}
|
||||
|
||||
void leet::unbanUserFromRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const leet::User::Profile& profile, const std::string& Reason) {
|
||||
void leet::unbanUserFromRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const leet::User::Profile& profile, const std::string& Reason) {
|
||||
nlohmann::json body;
|
||||
|
||||
if (!Reason.compare("")) {
|
||||
|
@ -1791,7 +1791,7 @@ void leet::unbanUserFromRoom(const leet::User::credentialsResponse& resp, const
|
|||
}
|
||||
}
|
||||
|
||||
bool leet::getVisibilityOfRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room) {
|
||||
bool leet::getVisibilityOfRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room) {
|
||||
const std::string Output { leet::invokeRequest_Get(leet::getAPI("/_matrix/client/v3/directory/list/room/" + room.roomID), resp.accessToken) };
|
||||
|
||||
nlohmann::json reqOutput;
|
||||
|
@ -1822,7 +1822,7 @@ bool leet::getVisibilityOfRoom(const leet::User::credentialsResponse& resp, cons
|
|||
return false;
|
||||
}
|
||||
|
||||
void leet::setVisibilityOfRoom(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const bool Visibility) {
|
||||
void leet::setVisibilityOfRoom(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const bool Visibility) {
|
||||
nlohmann::json body;
|
||||
|
||||
body["visibility"] = Visibility ? "public" : "private";
|
||||
|
@ -1848,7 +1848,7 @@ void leet::setVisibilityOfRoom(const leet::User::credentialsResponse& resp, cons
|
|||
}
|
||||
}
|
||||
|
||||
void leet::setReadMarkerPosition(const leet::User::credentialsResponse& resp, const leet::Room::Room& room,
|
||||
void leet::setReadMarkerPosition(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room,
|
||||
const leet::Event::Event& fullyReadEvent, const leet::Event::Event& readEvent, const leet::Event::Event& privateReadEvent) {
|
||||
nlohmann::json body;
|
||||
|
||||
|
@ -1924,7 +1924,7 @@ bool leet::loadTransID(const std::string& File) {
|
|||
return (leet::transID = leet::loadFromFile<int>(File));
|
||||
}
|
||||
|
||||
leet::Attachment::Attachment leet::uploadFile(const leet::User::credentialsResponse& resp, const std::string& File) {
|
||||
leet::Attachment::Attachment leet::uploadFile(const leet::User::CredentialsResponse& resp, const std::string& File) {
|
||||
leet::Attachment::Attachment theAttachment;
|
||||
const std::string Output = leet::invokeRequest_Post_File(leet::getAPI("/_matrix/media/v3/upload"), File, resp.accessToken);
|
||||
|
||||
|
@ -1955,7 +1955,7 @@ leet::Attachment::Attachment leet::uploadFile(const leet::User::credentialsRespo
|
|||
return theAttachment;
|
||||
}
|
||||
|
||||
std::string leet::decodeFile(const leet::User::credentialsResponse& resp, const leet::Attachment::Attachment& Attachment) {
|
||||
std::string leet::decodeFile(const leet::User::CredentialsResponse& resp, const leet::Attachment::Attachment& Attachment) {
|
||||
std::string Server{};
|
||||
std::string ID{};
|
||||
std::string File{Attachment.URL};
|
||||
|
@ -1977,7 +1977,7 @@ std::string leet::decodeFile(const leet::User::credentialsResponse& resp, const
|
|||
return leet::getAPI("/_matrix/media/v3/download/" + Server + "/" + ID + "?allow_redirect=false");
|
||||
}
|
||||
|
||||
bool leet::downloadFile(const leet::User::credentialsResponse& resp, const leet::Attachment::Attachment& Attachment, const std::string& outputFile) {
|
||||
bool leet::downloadFile(const leet::User::CredentialsResponse& resp, const leet::Attachment::Attachment& Attachment, const std::string& outputFile) {
|
||||
std::string Server{};
|
||||
std::string ID{};
|
||||
std::string File{Attachment.URL};
|
||||
|
@ -2029,8 +2029,8 @@ bool leet::downloadFile(const leet::User::credentialsResponse& resp, const leet:
|
|||
return request.downloadFile();
|
||||
}
|
||||
|
||||
leet::URL::urlPreview leet::getURLPreview(const leet::User::credentialsResponse& resp, const std::string& URL, const int64_t time) {
|
||||
leet::URL::urlPreview preview;
|
||||
leet::URL::URLPreview leet::getURLPreview(const leet::User::CredentialsResponse& resp, const std::string& URL, const int64_t time) {
|
||||
leet::URL::URLPreview preview;
|
||||
const std::string Output { leet::invokeRequest_Get(leet::getAPI("/_matrix/media/v3/preview_url?ts=" + std::to_string(time) + "&url=" + URL), resp.accessToken) };
|
||||
|
||||
nlohmann::json reqOutput;
|
||||
|
@ -2061,7 +2061,7 @@ int64_t leet::returnUnixTimestamp() {
|
|||
return std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();
|
||||
}
|
||||
|
||||
leet::Event::Event leet::returnEventFromTimestamp(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const int64_t Timestamp, const bool Direction) {
|
||||
leet::Event::Event leet::returnEventFromTimestamp(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const int64_t Timestamp, const bool Direction) {
|
||||
leet::Event::Event event;
|
||||
std::string Dir = Direction ? "f" : "b";
|
||||
|
||||
|
@ -2091,11 +2091,11 @@ leet::Event::Event leet::returnEventFromTimestamp(const leet::User::credentialsR
|
|||
return event;
|
||||
}
|
||||
|
||||
leet::Event::Event leet::returnLatestEvent(const leet::User::credentialsResponse& resp, const leet::Room::Room& room) {
|
||||
leet::Event::Event leet::returnLatestEvent(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room) {
|
||||
return leet::returnEventFromTimestamp(resp, room, leet::returnUnixTimestamp(), true);
|
||||
}
|
||||
|
||||
void leet::redactEvent(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const leet::Event::Event& event, const std::string& Reason) {
|
||||
void leet::redactEvent(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const leet::Event::Event& event, const std::string& Reason) {
|
||||
|
||||
nlohmann::json body;
|
||||
|
||||
|
@ -2125,7 +2125,7 @@ void leet::redactEvent(const leet::User::credentialsResponse& resp, const leet::
|
|||
|
||||
}
|
||||
|
||||
void leet::reportEvent(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const leet::Event::Event& event, const std::string& Reason, const int Score) {
|
||||
void leet::reportEvent(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const leet::Event::Event& event, const std::string& Reason, const int Score) {
|
||||
const std::string APIUrl { "/_matrix/client/v3/rooms/" + room.roomID + "/report/" + event.eventID };
|
||||
|
||||
nlohmann::json body;
|
||||
|
@ -2155,7 +2155,7 @@ void leet::reportEvent(const leet::User::credentialsResponse& resp, const leet::
|
|||
}
|
||||
}
|
||||
|
||||
void leet::sendMessage(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const leet::Event::Message& msg) {
|
||||
void leet::sendMessage(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const leet::Event::Message& msg) {
|
||||
const int transID { leet::transID };
|
||||
const std::string eventType { "m.room.message" };
|
||||
const std::string APIUrl { "/_matrix/client/v3/rooms/" + room.roomID + "/send/" + eventType + "/" + std::to_string(transID) };
|
||||
|
@ -2277,7 +2277,7 @@ void leet::sendMessage(const leet::User::credentialsResponse& resp, const leet::
|
|||
}
|
||||
|
||||
#ifndef LEET_NO_ENCRYPTION
|
||||
void leet::sendEncryptedMessage(const leet::User::credentialsResponse& resp, leet::Encryption& enc, const leet::Room::Room& room, const leet::Event::Message& msg) {
|
||||
void leet::sendEncryptedMessage(const leet::User::CredentialsResponse& resp, leet::Encryption& enc, const leet::Room::Room& room, const leet::Event::Message& msg) {
|
||||
const int transID { leet::transID };
|
||||
const std::string eventType { "m.room.encrypted" };
|
||||
const std::string APIUrl { "/_matrix/client/v3/rooms/" + room.roomID + "/send/" + eventType + "/" + std::to_string(transID) };
|
||||
|
@ -2330,7 +2330,7 @@ void leet::sendEncryptedMessage(const leet::User::credentialsResponse& resp, lee
|
|||
}
|
||||
#endif
|
||||
|
||||
leet::Event::Event leet::getStateFromType(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const std::string& eventType, const std::string& stateKey) {
|
||||
leet::Event::Event leet::getStateFromType(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const std::string& eventType, const std::string& stateKey) {
|
||||
leet::Event::Event event;
|
||||
leet::errorCode = 0;
|
||||
const std::string Output { leet::invokeRequest_Get(leet::getAPI("/_matrix/client/v3/rooms/" + room.roomID + "/state/" + eventType + "/" + stateKey), resp.accessToken) };
|
||||
|
@ -2361,7 +2361,7 @@ leet::Event::Event leet::getStateFromType(const leet::User::credentialsResponse&
|
|||
return event;
|
||||
}
|
||||
|
||||
leet::Event::Event leet::setStateFromType(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const std::string& eventType, const std::string& stateKey, const std::string& Body) {
|
||||
leet::Event::Event leet::setStateFromType(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const std::string& eventType, const std::string& stateKey, const std::string& Body) {
|
||||
leet::Event::Event event;
|
||||
leet::errorCode = 0;
|
||||
const std::string Output { leet::invokeRequest_Put(leet::getAPI("/_matrix/client/v3/rooms/" + room.roomID + "/state/" + eventType + "/" + stateKey), Body, resp.accessToken) };
|
||||
|
@ -2389,7 +2389,7 @@ leet::Event::Event leet::setStateFromType(const leet::User::credentialsResponse&
|
|||
return event;
|
||||
}
|
||||
|
||||
std::vector<leet::Event::Message> leet::returnMessages(const leet::User::credentialsResponse& resp, const leet::Room::Room& room, const int messageCount) {
|
||||
std::vector<leet::Event::Message> leet::returnMessages(const leet::User::CredentialsResponse& resp, const leet::Room::Room& room, const int messageCount) {
|
||||
std::vector<leet::Event::Message> vector;
|
||||
const std::string APIUrl { "/_matrix/client/v3/rooms/" + room.roomID + "/messages?dir=b&limit=" + std::to_string(messageCount) };
|
||||
|
||||
|
@ -2455,7 +2455,7 @@ std::vector<leet::Event::Message> leet::returnMessages(const leet::User::credent
|
|||
return vector;
|
||||
}
|
||||
|
||||
leet::Filter::Filter leet::returnFilter(const leet::User::credentialsResponse& resp, const leet::Filter::filterConfiguration& filter) {
|
||||
leet::Filter::Filter leet::returnFilter(const leet::User::CredentialsResponse& resp, const leet::Filter::FilterConfiguration& filter) {
|
||||
leet::Filter::Filter retFilter;
|
||||
const std::string APIUrl { "/_matrix/client/v3/user/" + resp.userID + "/filter" };
|
||||
|
||||
|
@ -2500,14 +2500,14 @@ leet::Filter::Filter leet::returnFilter(const leet::User::credentialsResponse& r
|
|||
return retFilter;
|
||||
}
|
||||
|
||||
void leetFunction::getSessionsFromSync(const leet::User::credentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it) {
|
||||
void leetFunction::getSessionsFromSync(const leet::User::CredentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it) {
|
||||
if (!it["to_device"]["events"].is_array()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto& itEvent : it["to_device"]["events"]) {
|
||||
leet::errorCode = 0;
|
||||
leet::Sync::megolmSession megolmSession;
|
||||
leet::Sync::MegolmSession megolmSession;
|
||||
|
||||
if (itEvent["content"]["sender_key"].is_string()) {
|
||||
megolmSession.senderKey = itEvent["content"]["sender_key"];
|
||||
|
@ -2539,7 +2539,7 @@ void leetFunction::getSessionsFromSync(const leet::User::credentialsResponse& re
|
|||
}
|
||||
}
|
||||
|
||||
void leetFunction::getInvitesFromSync(const leet::User::credentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it) {
|
||||
void leetFunction::getInvitesFromSync(const leet::User::CredentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it) {
|
||||
if (it["invite"].is_null()) {
|
||||
return;
|
||||
}
|
||||
|
@ -2549,7 +2549,7 @@ void leetFunction::getInvitesFromSync(const leet::User::credentialsResponse& res
|
|||
continue;
|
||||
}
|
||||
|
||||
leet::Sync::roomEvent::inviteEvent theInviteEvent{};
|
||||
leet::Sync::RoomEvent::InviteEvent theInviteEvent{};
|
||||
|
||||
theInviteEvent.Encrypted = false; // sane default
|
||||
|
||||
|
@ -2619,7 +2619,7 @@ void leetFunction::getInvitesFromSync(const leet::User::credentialsResponse& res
|
|||
}
|
||||
}
|
||||
|
||||
void leetFunction::getRoomEventsFromSync(const leet::User::credentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it) {
|
||||
void leetFunction::getRoomEventsFromSync(const leet::User::CredentialsResponse& resp, leet::Sync::Sync& sync, nlohmann::json& it) {
|
||||
if (it["rooms"].is_null()) {
|
||||
return;
|
||||
}
|
||||
|
@ -2627,7 +2627,7 @@ void leetFunction::getRoomEventsFromSync(const leet::User::credentialsResponse&
|
|||
leetFunction::getInvitesFromSync(resp, sync, it["rooms"]);
|
||||
}
|
||||
|
||||
leet::Sync::Sync leet::returnSync(const leet::User::credentialsResponse& resp, const leet::Sync::syncConfiguration& conf) {
|
||||
leet::Sync::Sync leet::returnSync(const leet::User::CredentialsResponse& resp, const leet::Sync::SyncConfiguration& conf) {
|
||||
leet::Sync::Sync sync{};
|
||||
std::string presenceString{"offline"};
|
||||
|
||||
|
@ -2676,7 +2676,7 @@ leet::Sync::Sync leet::returnSync(const leet::User::credentialsResponse& resp, c
|
|||
return sync;
|
||||
}
|
||||
|
||||
leet::VOIP::Credentials leet::returnTurnCredentials(const leet::User::credentialsResponse& resp) {
|
||||
leet::VOIP::Credentials leet::returnTurnCredentials(const leet::User::CredentialsResponse& resp) {
|
||||
leet::VOIP::Credentials cred;
|
||||
|
||||
const std::string Output { leet::invokeRequest_Get(leet::getAPI("/_matrix/client/v3/voip/turnServer"), resp.accessToken) };
|
||||
|
@ -2777,7 +2777,7 @@ std::vector<std::string> leet::returnSupportedSpecs() {
|
|||
return vector;
|
||||
}
|
||||
|
||||
int leet::returnMaxUploadLimit(const leet::User::credentialsResponse& resp) {
|
||||
int leet::returnMaxUploadLimit(const leet::User::CredentialsResponse& resp) {
|
||||
const std::string APIUrl { "/_matrix/media/v3/config" };
|
||||
const std::string Output { leet::invokeRequest_Get(leet::getAPI(APIUrl), resp.accessToken) };
|
||||
|
||||
|
|
Loading…
Reference in a new issue