From af60bceada7e55011f6d5ed2f13fef354ced45ef Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Fri, 4 Mar 2022 23:03:09 -0500 Subject: optimize sql for getting unknown member ids --- src/abaddon.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/abaddon.cpp') diff --git a/src/abaddon.cpp b/src/abaddon.cpp index c9ff24e..55c6ee9 100644 --- a/src/abaddon.cpp +++ b/src/abaddon.cpp @@ -328,16 +328,14 @@ void Abaddon::ShowGuildVerificationGateDialog(Snowflake guild_id) { void Abaddon::CheckMessagesForMembers(const ChannelData &chan, const std::vector &msgs) { if (!chan.GuildID.has_value()) return; - // TODO sql query - std::set fetch; - std::set ids; - for (const auto &msg : msgs) - ids.insert(msg.Author.ID); - for (const auto id : ids) { - const auto member = m_discord.GetMember(id, *chan.GuildID); - if (!member.has_value()) - fetch.insert(id); - } + std::vector unknown; + std::transform(msgs.begin(), msgs.end(), + std::back_inserter(unknown), + [](const Message &msg) -> Snowflake { + return msg.Author.ID; + }); + + const auto fetch = m_discord.FilterUnknownMembersFrom(*chan.GuildID, unknown.begin(), unknown.end()); m_discord.RequestMembers(*chan.GuildID, fetch.begin(), fetch.end()); } -- cgit v1.2.3