From 5703d06c7396814b239a621d03ef983372491d34 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sat, 4 Nov 2023 20:54:15 -0400 Subject: show animated reactions --- src/discord/store.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'src/discord/store.cpp') diff --git a/src/discord/store.cpp b/src/discord/store.cpp index dfeb7d1..817f71f 100644 --- a/src/discord/store.cpp +++ b/src/discord/store.cpp @@ -1056,11 +1056,12 @@ Message Store::GetMessageBound(std::unique_ptr &s) const { while (s->FetchOne()) { size_t idx; ReactionData q; - s->Get(0, q.Emoji.ID); - s->Get(1, q.Emoji.Name); - s->Get(2, q.Count); - s->Get(3, q.HasReactedWith); - s->Get(4, idx); + s->Get(0, q.Count); + s->Get(1, q.HasReactedWith); + s->Get(2, idx); + s->Get(3, q.Emoji.ID); + s->Get(4, q.Emoji.Name); + s->Get(5, q.Emoji.IsAnimated); tmp[idx] = q; } s->Reset(); @@ -2291,7 +2292,19 @@ bool Store::CreateStatements() { } m_stmt_get_reactions = std::make_unique(m_db, R"( - SELECT emoji_id, name, count, me, idx FROM reactions WHERE message = ? + SELECT + reactions.count, + reactions.me, + reactions.idx, + emojis.id, + emojis.name, + emojis.animated + FROM + reactions + INNER JOIN + emojis ON reactions.emoji_id = emojis.id + WHERE + message = ? )"); if (!m_stmt_get_reactions->OK()) { fprintf(stderr, "failed to prepare get reactions statement: %s\n", m_db.ErrStr()); -- cgit v1.2.3 From 6b436918f8b9a96a2dcde7c61b440bc8a774fbbf Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Mon, 4 Dec 2023 01:48:49 -0500 Subject: fetch DoesMentionEveryone from store --- src/discord/store.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/discord/store.cpp') diff --git a/src/discord/store.cpp b/src/discord/store.cpp index 817f71f..0e1ba48 100644 --- a/src/discord/store.cpp +++ b/src/discord/store.cpp @@ -975,7 +975,7 @@ Message Store::GetMessageBound(std::unique_ptr &s) const { s->Get(5, r.Timestamp); s->Get(6, r.EditedTimestamp); // s->Get(7, r.IsTTS); - // s->Get(8, r.DoesMentionEveryone); + s->Get(8, r.DoesMentionEveryone); s->GetJSON(9, r.Embeds); s->Get(10, r.IsPinned); s->Get(11, r.WebhookID); -- cgit v1.2.3 From 23bf237e4e7dd008df8ff32da31878d1b990f5bf Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Wed, 13 Dec 2023 21:59:45 -0500 Subject: view image alt text on hover --- src/components/chatmessage.cpp | 3 +++ src/discord/message.cpp | 2 ++ src/discord/message.hpp | 5 +++-- src/discord/store.cpp | 5 ++++- 4 files changed, 12 insertions(+), 3 deletions(-) (limited to 'src/discord/store.cpp') diff --git a/src/components/chatmessage.cpp b/src/components/chatmessage.cpp index 6eccba2..2c2f9dd 100644 --- a/src/components/chatmessage.cpp +++ b/src/components/chatmessage.cpp @@ -46,6 +46,9 @@ ChatMessageItemContainer *ChatMessageItemContainer::FromMessage(const Message &d for (const auto &a : data.Attachments) { if (IsURLViewableImage(a.ProxyURL) && a.Width.has_value() && a.Height.has_value()) { auto *widget = container->CreateImageComponent(a.ProxyURL, a.URL, *a.Width, *a.Height); + if (a.Description.has_value()) { + widget->set_tooltip_text(*a.Description); + } container->m_main.add(*widget); } else { auto *widget = container->CreateAttachmentComponent(a); diff --git a/src/discord/message.cpp b/src/discord/message.cpp index bc4c6c8..8a0e271 100644 --- a/src/discord/message.cpp +++ b/src/discord/message.cpp @@ -128,6 +128,7 @@ void to_json(nlohmann::json &j, const AttachmentData &m) { j["proxy_url"] = m.ProxyURL; JS_IF("height", m.Height); JS_IF("width", m.Width); + JS_IF("description", m.Description); } void from_json(const nlohmann::json &j, AttachmentData &m) { @@ -138,6 +139,7 @@ void from_json(const nlohmann::json &j, AttachmentData &m) { JS_D("proxy_url", m.ProxyURL); JS_ON("height", m.Height); JS_ON("width", m.Width); + JS_ON("description", m.Description); } void from_json(const nlohmann::json &j, MessageReferenceData &m) { diff --git a/src/discord/message.hpp b/src/discord/message.hpp index b71c158..1e836d0 100644 --- a/src/discord/message.hpp +++ b/src/discord/message.hpp @@ -168,8 +168,9 @@ struct AttachmentData { int Bytes; std::string URL; std::string ProxyURL; - std::optional Height; // null - std::optional Width; // null + std::optional Height; // null + std::optional Width; // null + std::optional Description; // alt text friend void to_json(nlohmann::json &j, const AttachmentData &m); friend void from_json(const nlohmann::json &j, AttachmentData &m); diff --git a/src/discord/store.cpp b/src/discord/store.cpp index 0e1ba48..bf630aa 100644 --- a/src/discord/store.cpp +++ b/src/discord/store.cpp @@ -368,6 +368,7 @@ void Store::SetMessage(Snowflake id, const Message &message) { s->Bind(6, a.ProxyURL); s->Bind(7, a.Height); s->Bind(8, a.Width); + s->Bind(9, a.Description); if (!s->Insert()) fprintf(stderr, "message attachment insert failed for %" PRIu64 "/%" PRIu64 ": %s\n", static_cast(id), static_cast(a.ID), m_db.ErrStr()); s->Reset(); @@ -1021,6 +1022,7 @@ Message Store::GetMessageBound(std::unique_ptr &s) const { s->Get(5, q.ProxyURL); s->Get(6, q.Height); s->Get(7, q.Width); + s->Get(8, q.Description); } s->Reset(); } @@ -1509,6 +1511,7 @@ bool Store::CreateTables() { proxy TEXT NOT NULL, height INTEGER, width INTEGER, + description TEXT, PRIMARY KEY(message, id) ) )"; @@ -2212,7 +2215,7 @@ bool Store::CreateStatements() { m_stmt_set_attachment = std::make_unique(m_db, R"( REPLACE INTO attachments VALUES ( - ?, ?, ?, ?, ?, ?, ?, ? + ?, ?, ?, ?, ?, ?, ?, ?, ? ) )"); if (!m_stmt_set_attachment->OK()) { -- cgit v1.2.3