summaryrefslogtreecommitdiff
path: root/src/discord/discord.hpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-03-04 23:03:09 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2022-03-04 23:03:09 -0500
commitaf60bceada7e55011f6d5ed2f13fef354ced45ef (patch)
tree8303bdcff7c4f55a9e13cec85d560770ad94cf50 /src/discord/discord.hpp
parent3583a5d2516f9b71d389ccb95224b21a3dae20a2 (diff)
downloadabaddon-portaudio-af60bceada7e55011f6d5ed2f13fef354ced45ef.tar.gz
abaddon-portaudio-af60bceada7e55011f6d5ed2f13fef354ced45ef.zip
optimize sql for getting unknown member ids
Diffstat (limited to 'src/discord/discord.hpp')
-rw-r--r--src/discord/discord.hpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/discord/discord.hpp b/src/discord/discord.hpp
index dfe82cd..6add18f 100644
--- a/src/discord/discord.hpp
+++ b/src/discord/discord.hpp
@@ -84,6 +84,17 @@ public:
void GetArchivedPrivateThreads(Snowflake channel_id, sigc::slot<void(DiscordError, const ArchivedThreadsResponseData &)> callback);
std::vector<Snowflake> GetChildChannelIDs(Snowflake parent_id) const;
+ // get ids of given list of members for who we do not have the member data
+ template<typename Iter>
+ std::unordered_set<Snowflake> FilterUnknownMembersFrom(Snowflake guild_id, Iter begin, Iter end) {
+ std::unordered_set<Snowflake> ret;
+ const auto known = m_store.GetMembersInGuild(guild_id);
+ for (auto iter = begin; iter != end; iter++)
+ if (known.find(*iter) == known.end())
+ ret.insert(*iter);
+ return ret;
+ }
+
bool IsThreadJoined(Snowflake thread_id) const;
bool HasGuildPermission(Snowflake user_id, Snowflake guild_id, Permission perm) const;