From 2e2ed5fc8f5192f082603f108fbe9a1fdaf39707 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Tue, 22 Dec 2020 21:18:39 -0500 Subject: show slash command/APPLICATION_COMMAND messages --- components/chatmessage.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'components') diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp index a072360..b5d8614 100644 --- a/components/chatmessage.cpp +++ b/components/chatmessage.cpp @@ -221,6 +221,17 @@ void ChatMessageItemContainer::UpdateTextComponent(Gtk::TextView *tv) { case MessageType::CHANNEL_PINNED_MESSAGE: b->insert_markup(s, "[message pinned]"); break; + case MessageType::APPLICATION_COMMAND: { + if (data->Application.has_value()) { + static const auto regex = Glib::Regex::create(R"()"); + Glib::MatchInfo match; + if (regex->match(data->Content, match)) { + const auto cmd = match.fetch(1); + const auto app = data->Application->Name; + b->insert_markup(s, "used " + cmd + " with " + app + ""); + } + } + } break; default: break; } } @@ -945,23 +956,18 @@ ChatMessageHeader::ChatMessageHeader(const Message *data) { m_meta_ev->signal_button_press_event().connect(sigc::mem_fun(*this, &ChatMessageHeader::on_author_button_press)); - if (data->WebhookID.has_value()) { + if (author->IsBot || data->WebhookID.has_value()) { m_extra = Gtk::manage(new Gtk::Label); m_extra->get_style_context()->add_class("message-container-extra"); m_extra->set_single_line_mode(true); m_extra->set_margin_start(12); m_extra->set_can_focus(false); m_extra->set_use_markup(true); - m_extra->set_markup("Webhook"); - } else if (data->Author.IsBot) { - m_extra = Gtk::manage(new Gtk::Label); - m_extra->get_style_context()->add_class("message-container-extra"); - m_extra->set_single_line_mode(true); - m_extra->set_margin_start(12); - m_extra->set_can_focus(false); - m_extra->set_use_markup(true); - m_extra->set_markup("BOT"); } + if (author->IsBot) + m_extra->set_markup("BOT"); + else if (data->WebhookID.has_value()) + m_extra->set_markup("Webhook"); m_timestamp->set_text(data->Timestamp); m_timestamp->set_opacity(0.5); -- cgit v1.2.3