#include "../http.hh"
#include <iostream>
#include <string>
#include <cstring>
#include <functional>
using json = nlohmann::json;
GMainLoop *loop;
if (!error && event.
getRoomID() == *pRoom)
{
try
{
std::cout <<
"[Received message of type " << msgevent.
getMessageType() <<
"]\n";
try
{
return;
}
catch (std::bad_cast)
{}
if (msgevent.
getBody() ==
"quit")
{
return;
}
json event = {
{"room_id", msgevent.getRoomID()},
{
"type", msgevent.
getType()},
{
"content", msgevent.
getContent()}
};
if (error)
{
std::cerr << "Error sending event: " << error->to_string() << std::endl;
}
else
{
std::cout << "sent event " << event_id << std::endl;
}
});
}
catch (std::bad_cast)
{
}
}
}
int main(int argc, char**argv)
{
if (argc != 5 || !strcmp(argv[1], "--help"))
{
std::cout << "Usage:\n";
std::cout << " " << argv[0] << " <homeserver> <username> <password> <roomid>\n";
exit(0);
}
const std::string &room = argv[4];
SoupSession *session = soup_session_new();
loop = g_main_loop_new(nullptr, FALSE);
if (error)
{
std::cerr << "Error in login: " << error->to_string() << std::endl;
g_main_loop_quit(loop);
}
else
{
try
{
std::cout <<
"[Logged into " <<
event.
getHomeServer() <<
" as " <<
event.getUserID() <<
"]\n";
}
catch (std::bad_cast)
{
std::cerr << "Unexpected event received for login\n";
g_main_loop_quit(loop);
}
}
});
g_main_loop_quit(loop);
});
client.
login(argv[2], argv[3]);
g_main_loop_run(loop);
}