summaryrefslogtreecommitdiff
path: root/src/discord
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-12-21 21:49:18 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2022-12-21 21:49:18 -0500
commite0e0a6c76708fdf12113bf1b5c4ee96eacc35cae (patch)
treef3aea67e9f707a6f53e9b1cc3c7abac05b866b8b /src/discord
parentacb03642c2b56260e406ffbba6ef91b74fcf9eef (diff)
downloadabaddon-portaudio-e0e0a6c76708fdf12113bf1b5c4ee96eacc35cae.tar.gz
abaddon-portaudio-e0e0a6c76708fdf12113bf1b5c4ee96eacc35cae.zip
add option to dump ready payload because thats useful
Diffstat (limited to 'src/discord')
-rw-r--r--src/discord/discord.cpp15
-rw-r--r--src/discord/discord.hpp4
2 files changed, 19 insertions, 0 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp
index 2808e17..6739493 100644
--- a/src/discord/discord.cpp
+++ b/src/discord/discord.cpp
@@ -1204,6 +1204,10 @@ void DiscordClient::SetUserAgent(const std::string &agent) {
m_websocket.SetUserAgent(agent);
}
+void DiscordClient::SetDumpReady(bool dump) {
+ m_dump_ready = dump;
+}
+
bool DiscordClient::IsChannelMuted(Snowflake id) const noexcept {
return m_muted_channels.find(id) != m_muted_channels.end();
}
@@ -1566,6 +1570,17 @@ void DiscordClient::ProcessNewGuild(GuildData &guild) {
void DiscordClient::HandleGatewayReady(const GatewayMessage &msg) {
m_ready_received = true;
+
+ if (m_dump_ready) {
+ const auto name = "./payload_ready-" + Glib::DateTime::create_now_utc().format("%Y-%m-%d_%H-%M-%S") + ".json";
+ auto *fp = std::fopen(name.c_str(), "wb");
+ if (fp != nullptr) {
+ const auto contents = msg.Data.dump(4);
+ std::fwrite(contents.data(), contents.size(), 1, fp);
+ std::fclose(fp);
+ }
+ }
+
ReadyEventData data = msg.Data;
for (auto &g : data.Guilds)
ProcessNewGuild(g);
diff --git a/src/discord/discord.hpp b/src/discord/discord.hpp
index c2bea7d..685d096 100644
--- a/src/discord/discord.hpp
+++ b/src/discord/discord.hpp
@@ -211,6 +211,8 @@ public:
void UpdateToken(const std::string &token);
void SetUserAgent(const std::string &agent);
+ void SetDumpReady(bool dump);
+
bool IsChannelMuted(Snowflake id) const noexcept;
bool IsGuildMuted(Snowflake id) const noexcept;
int GetUnreadStateForChannel(Snowflake id) const noexcept;
@@ -229,6 +231,8 @@ private:
std::vector<uint8_t> m_decompress_buf;
z_stream m_zstream;
+ bool m_dump_ready = false;
+
static std::string GetAPIURL();
static std::string GetGatewayURL();