summaryrefslogtreecommitdiff
path: root/discord/discord.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-11-08 01:23:50 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2020-11-08 01:23:50 -0500
commit67ee799f04c4add8bd3f652877064c012c9b9e2a (patch)
treec9939b9b8a4650618c211375405a93a1aa878cb2 /discord/discord.cpp
parentf124626a6dcecf928be90193b2faf8e265ba502b (diff)
downloadabaddon-portaudio-67ee799f04c4add8bd3f652877064c012c9b9e2a.tar.gz
abaddon-portaudio-67ee799f04c4add8bd3f652877064c012c9b9e2a.zip
add open dm to user menu
Diffstat (limited to 'discord/discord.cpp')
-rw-r--r--discord/discord.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp
index acb98aa..5f3f6e4 100644
--- a/discord/discord.cpp
+++ b/discord/discord.cpp
@@ -404,6 +404,23 @@ void DiscordClient::UpdateStatus(const std::string &status, bool is_afk, const A
m_websocket.Send(nlohmann::json(msg));
}
+void DiscordClient::CreateDM(Snowflake user_id) {
+ // actual client uses an array called recipients
+ CreateDMObject obj;
+ obj.Recipients.push_back(user_id);
+ m_http.MakePOST("/users/@me/channels", nlohmann::json(obj).dump(), [](auto) {});
+}
+
+std::optional<Snowflake> DiscordClient::FindDM(Snowflake user_id) {
+ const auto &channels = m_store.GetChannels();
+ for (const auto &[id, channel] : channels) {
+ if (channel.Recipients.size() == 1 && channel.Recipients[0].ID == user_id)
+ return id;
+ }
+
+ return std::nullopt;
+}
+
void DiscordClient::UpdateToken(std::string token) {
if (!IsStarted()) {
m_token = token;