diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2023-07-17 21:37:24 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2023-07-17 21:37:24 -0400 |
commit | d04e101800c451c4963a530b7cf745666105cec4 (patch) | |
tree | d73fdf97b00d8f40d8888de762574a424df435eb /src/discord/store.cpp | |
parent | 0f3814586e3949d1a7fc15bfc2aff2b99d4975a8 (diff) | |
parent | 857e94af3817932b78963873fb5621ae3c4596f7 (diff) | |
download | abaddon-portaudio-d04e101800c451c4963a530b7cf745666105cec4.tar.gz abaddon-portaudio-d04e101800c451c4963a530b7cf745666105cec4.zip |
Merge branch 'master' into rnnoise
Diffstat (limited to 'src/discord/store.cpp')
-rw-r--r-- | src/discord/store.cpp | 78 |
1 files changed, 37 insertions, 41 deletions
diff --git a/src/discord/store.cpp b/src/discord/store.cpp index 41b2069..7ee4d87 100644 --- a/src/discord/store.cpp +++ b/src/discord/store.cpp @@ -438,6 +438,7 @@ void Store::SetUser(Snowflake id, const UserData &user) { s->Bind(7, user.IsMFAEnabled); s->Bind(8, user.PremiumType); s->Bind(9, user.PublicFlags); + s->Bind(10, user.GlobalName); if (!s->Insert()) fprintf(stderr, "user insert failed for %" PRIu64 ": %s\n", static_cast<uint64_t>(id), m_db.ErrStr()); @@ -558,8 +559,9 @@ std::vector<Message> Store::GetMessagesBefore(Snowflake channel_id, Snowflake me for (auto &msg : msgs) { if (msg.MessageReference.has_value() && msg.MessageReference->MessageID.has_value()) { auto ref = GetMessage(*msg.MessageReference->MessageID); - if (ref.has_value()) + if (ref.has_value()) { msg.ReferencedMessage = std::make_shared<Message>(std::move(*ref)); + } } } @@ -1109,6 +1111,7 @@ std::optional<UserData> Store::GetUser(Snowflake id) const { s->Get(6, r.IsMFAEnabled); s->Get(7, r.PremiumType); s->Get(8, r.PublicFlags); + s->Get(9, r.GlobalName); s->Reset(); @@ -1233,7 +1236,8 @@ bool Store::CreateTables() { system BOOL, mfa BOOL, premium INTEGER, - pubflags INTEGER + pubflags INTEGER, + global_name TEXT ) )"; @@ -1797,7 +1801,7 @@ bool Store::CreateStatements() { m_stmt_set_user = std::make_unique<Statement>(m_db, R"( REPLACE INTO users VALUES ( - ?, ?, ?, ?, ?, ?, ?, ?, ? + ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) )"); if (!m_stmt_set_user->OK()) { @@ -2057,26 +2061,22 @@ bool Store::CreateStatements() { message_interactions.name, message_interactions.type, message_interactions.user_id, - attachments.id, - attachments.filename, - attachments.size, - attachments.url, - attachments.proxy, - attachments.height, - attachments.width, - message_references.message + message_references.message, + message_references.channel, + message_references.guild, + COUNT(attachments.id) FROM messages LEFT OUTER JOIN message_interactions ON messages.id = message_interactions.message_id LEFT OUTER JOIN - attachments - ON messages.id = attachments.message - LEFT OUTER JOIN message_references ON messages.id = message_references.id + LEFT OUTER JOIN + attachments + ON messages.id = attachments.message WHERE channel_id = ? AND pending = 0 AND messages.id < ? ORDER BY id DESC LIMIT ? - ) ORDER BY id ASC + ) WHERE id IS NOT NULL ORDER BY id ASC )"); if (!m_stmt_get_messages_before->OK()) { fprintf(stderr, "failed to prepare get messages before statement: %s\n", m_db.ErrStr()); @@ -2084,32 +2084,28 @@ bool Store::CreateStatements() { } m_stmt_get_pins = std::make_unique<Statement>(m_db, R"( - SELECT messages.*, - message_interactions.interaction_id, - message_interactions.name, - message_interactions.type, - message_interactions.user_id, - attachments.id, - attachments.filename, - attachments.size, - attachments.url, - attachments.proxy, - attachments.height, - attachments.width, - message_references.message, - message_references.channel, - message_references.guild - FROM messages - LEFT OUTER JOIN - message_interactions - ON messages.id = message_interactions.message_id - LEFT OUTER JOIN - attachments - ON messages.id = attachments.message - LEFT OUTER JOIN - message_references - ON messages.id = message_references.id - WHERE channel_id = ? AND pinned = 1 ORDER BY id ASC + SELECT * FROM ( + SELECT messages.*, + message_interactions.interaction_id, + message_interactions.name, + message_interactions.type, + message_interactions.user_id, + message_references.message, + message_references.channel, + message_references.guild, + COUNT(attachments.id) + FROM messages + LEFT OUTER JOIN + message_interactions + ON messages.id = message_interactions.message_id + LEFT OUTER JOIN + message_references + ON messages.id = message_references.id + LEFT OUTER JOIN + attachments + ON messages.id = attachments.message + WHERE channel_id = ? AND pinned = 1 ORDER BY id ASC + ) WHERE id IS NOT NULL )"); if (!m_stmt_get_pins->OK()) { fprintf(stderr, "failed to prepare get pins statement: %s\n", m_db.ErrStr()); |