diff options
Diffstat (limited to 'src/discord/discord.cpp')
-rw-r--r-- | src/discord/discord.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp index c1b32d9..cd5e2b3 100644 --- a/src/discord/discord.cpp +++ b/src/discord/discord.cpp @@ -1200,6 +1200,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(); } @@ -1562,6 +1566,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); @@ -2273,6 +2288,10 @@ std::set<Snowflake> DiscordClient::GetPrivateChannels() const { return {}; } +const UserSettings &DiscordClient::GetUserSettings() const { + return m_user_settings; +} + EPremiumType DiscordClient::GetSelfPremiumType() const { const auto &data = GetUserData(); if (data.PremiumType.has_value()) |