From 5e1408be503f8ef019110287f045c9a3d3e1fed7 Mon Sep 17 00:00:00 2001 From: rexy712 Date: Sat, 30 Mar 2019 08:34:33 -0700 Subject: [PATCH] added some to-be-implemented functionality urls --- doc/TODO | 1 + include/matrix.hpp | 14 ++++++++++++++ src/matrix.cpp | 31 ++++++++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/doc/TODO b/doc/TODO index 748b504..b044caa 100644 --- a/doc/TODO +++ b/doc/TODO @@ -20,6 +20,7 @@ matrix: list room members delete messages change password + ability to select specification revision reddit: handle imgur albums diff --git a/include/matrix.hpp b/include/matrix.hpp index 07c5068..f0b2a07 100644 --- a/include/matrix.hpp +++ b/include/matrix.hpp @@ -42,6 +42,7 @@ namespace matrix{ } }; + //upload info structs struct file_info{ raii::rjp_string fileurl; raii::string filename; @@ -60,6 +61,7 @@ namespace matrix{ struct video_info : public image_info{}; struct audio_info : public file_info{}; + //message handling structs //enumerate message type but also give a string representation class msgtype{ private: @@ -133,6 +135,7 @@ namespace matrix{ const int age; }; + //main class class bot { private: @@ -171,6 +174,17 @@ namespace matrix{ raii::string sync(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& next_batch, const raii::string_base& timeout)const; raii::string read_receipt(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const; raii::string send(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const; + raii::string redact(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const; + raii::string power_level(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const; + raii::string presence(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& userid)const; + raii::string typing(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& userid)const; + raii::string kick(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const; + raii::string ban(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const; + raii::string unban(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const; + raii::string invite(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const; + raii::string room_members(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const; + raii::string password(const raii::string_base& homeserver, const raii::string_base& access_token)const; + void repopulate_accesstoken(const raii::string_base& homeserver, const raii::string_base& access_token); void repopulate_userid(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& userid); diff --git a/src/matrix.cpp b/src/matrix.cpp index c48aae3..387be47 100644 --- a/src/matrix.cpp +++ b/src/matrix.cpp @@ -745,7 +745,36 @@ namespace matrix{ } raii::string bot::mat_url_list::send(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{ return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/send/m.room.message?access_token=" + access_token); - + } + raii::string bot::mat_url_list::redact(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/redact/" + eventid + "?access_token=" + access_token); + } + raii::string bot::mat_url_list::power_level(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/state/m.room.power_levels?access_token=" + access_token); + } + raii::string bot::mat_url_list::presence(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& userid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/presence/" + userid + "/status?access_token=" + access_token); + } + raii::string bot::mat_url_list::typing(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& userid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/typing/" + userid + "?access_token=" + access_token); + } + raii::string bot::mat_url_list::kick(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/kick?access_token=" + access_token); + } + raii::string bot::mat_url_list::ban(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/ban?access_token=" + access_token); + } + raii::string bot::mat_url_list::unban(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/unban?access_token=" + access_token); + } + raii::string bot::mat_url_list::invite(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/invite?access_token=" + access_token); + } + raii::string bot::mat_url_list::room_members(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/members?access_token=" + access_token); + } + raii::string bot::mat_url_list::password(const raii::string_base& homeserver, const raii::string_base& access_token)const{ + return raii::string(s_proto + homeserver + "/_matrix/client/r0/account/password?access_token=" + access_token); } void bot::mat_url_list::_initial_populate(const raii::string_base& homeserver){ m_alias_lookup = s_proto + homeserver + "/_matrix/client/r0/directory/room/";