Add functionality to get other users' displaynames

This commit is contained in:
rexy712
2020-01-04 23:48:37 -08:00
parent bb12fcab13
commit b4f426b294
5 changed files with 14 additions and 10 deletions

View File

@@ -73,6 +73,7 @@ namespace matrix{
* Returns: the display name on success, an empty string on failure.
*/
netreturn<raii::rjp_string> get_display_name(void)const;
netreturn<raii::rjp_string> get_display_name(const raii::string_base&)const;
/*
* Gets the profile picture url of the logged in user from the homeserver.
* Returns: the profile picture url on success, an empty string on failure.

View File

@@ -31,7 +31,6 @@ namespace matrix::rest{
raii::string m_file_upload;
raii::string m_room_list;
raii::string m_alias_lookup;
raii::string m_displayname;
raii::string m_profile_picture;
public:
@@ -46,8 +45,8 @@ namespace matrix::rest{
const raii::string& file_upload(void)const;
const raii::string& room_list(void)const;
const raii::string& alias_lookup(void)const;
const raii::string& displayname(void)const;
const raii::string& profile_picture(void)const;
raii::string displayname(const session_info& session, const raii::string_base& userid)const;
raii::string file_download(const session_info& session, const raii::string_base& mediaid);
raii::string file_thumbnail(const session_info& session, const raii::string_base& fileurl, int width, int height, const raii::string_base& method)const;
raii::string presence(const session_info& session, const raii::string_base& userid)const;

View File

@@ -33,7 +33,7 @@ namespace matrix{
//networked setter
netreturn<void> client::set_display_name(const raii::string_base& newname){
_put_curl(json::_displayname_set(newname), m_urls->displayname(), raii::curl_llist());
_put_curl(json::_displayname_set(newname), m_urls->displayname(*m_ses, m_ses->userid), raii::curl_llist());
return netreturn<void>(raii::string(), raii::string(), http_status());
}
netreturn<void> client::set_profile_picture(const raii::string_base& media_url){
@@ -50,7 +50,10 @@ namespace matrix{
//networked getter
netreturn<raii::rjp_string> client::get_display_name(void)const{
return _get_and_find(m_urls->displayname(), json::keys::displayname());
return _get_and_find(m_urls->displayname(*m_ses, m_ses->userid), json::keys::displayname());
}
netreturn<raii::rjp_string> client::get_display_name(const raii::string_base& userid)const{
return _get_and_find(m_urls->displayname(*m_ses, userid), json::keys::displayname());
}
netreturn<raii::rjp_string> client::get_profile_picture(void)const{
return _get_and_find(m_urls->profile_picture(), json::keys::avatarurl());

View File

@@ -37,12 +37,12 @@ namespace matrix::rest{
const raii::string& client_url_list::alias_lookup(void)const{
return m_alias_lookup;
}
const raii::string& client_url_list::displayname(void)const{
return m_displayname;
}
const raii::string& client_url_list::profile_picture(void)const{
return m_profile_picture;
}
raii::string client_url_list::displayname(const session_info& session, const raii::string_base& userid)const{
return raii::string(matrix::rest::proto() + session.homeserver + "/_matrix/client/r0/profile/" + userid + "/displayname?access_token=" + session.access_token);
}
raii::string client_url_list::file_download(const session_info& session, const raii::string_base& fileurl){
raii::string media = get_server_media_string(fileurl);
if(!media) return {};
@@ -66,7 +66,6 @@ namespace matrix::rest{
m_create_room = matrix::rest::proto() + session.homeserver + "/_matrix/client/r0/createRoom?access_token=" + session.access_token;
m_file_upload = matrix::rest::proto() + session.homeserver + "/_matrix/media/r0/upload?access_token=" + session.access_token;
m_room_list = matrix::rest::proto() + session.homeserver + "/_matrix/client/r0/joined_rooms?access_token=" + session.access_token;
m_displayname = matrix::rest::proto() + session.homeserver + "/_matrix/client/r0/profile/" + session.userid + "/displayname?access_token=" + session.access_token;
m_profile_picture = matrix::rest::proto() + session.homeserver + "/_matrix/client/r0/profile/" + session.userid + "/avatar_url?access_token=" + session.access_token;
m_alias_lookup = matrix::rest::proto() + session.homeserver + "/_matrix/client/r0/directory/room/";
}
@@ -74,7 +73,6 @@ namespace matrix::rest{
m_create_room.reset();
m_file_upload.reset();
m_room_list.reset();
m_displayname.reset();
m_profile_picture.reset();
m_alias_lookup.reset();
}

View File

@@ -99,8 +99,11 @@ int main(){
if(event.type() == matrix::json::events::room::message()){
auto message = matrix::event_cast<matrix::sync::room_message_event>(std::move(event));
if(message.msgtype() == matrix::json::events::msgtype::text())
r.send_message(raii::string("\"" + message.body() + "\" what a nigger thing to say"_ss));
r.send_message(raii::string("\"" + message.body() + "\" what a faggot thing to say"_ss));
printf("message body: %s\n", message.body().get());
}else if(event.type() == matrix::json::events::room::sticker()){
auto displayname = client.get_display_name(event.sender());
r.send_message(raii::string("only jews send stickers, "_ss + displayname.value()));
}
}
}