diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-12-22 21:18:39 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-12-22 21:18:39 -0500 |
commit | 2e2ed5fc8f5192f082603f108fbe9a1fdaf39707 (patch) | |
tree | 4d5e43e83b4b93f679d16e806aec2f85a2d005c3 /components | |
parent | 09f40cf9a9799916ff5d062f3de3f92a14d1f2c5 (diff) | |
download | abaddon-portaudio-2e2ed5fc8f5192f082603f108fbe9a1fdaf39707.tar.gz abaddon-portaudio-2e2ed5fc8f5192f082603f108fbe9a1fdaf39707.zip |
show slash command/APPLICATION_COMMAND messages
Diffstat (limited to 'components')
-rw-r--r-- | components/chatmessage.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
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, "<span color='#999999'><i>[message pinned]</i></span>"); break; + case MessageType::APPLICATION_COMMAND: { + if (data->Application.has_value()) { + static const auto regex = Glib::Regex::create(R"(</(.*?):(\d+)>)"); + 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, "<i>used <span color='#697ec4'>" + cmd + "</span> with " + app + "</i>"); + } + } + } 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("<b>Webhook</b>"); - } 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("<b>BOT</b>"); } + if (author->IsBot) + m_extra->set_markup("<b>BOT</b>"); + else if (data->WebhookID.has_value()) + m_extra->set_markup("<b>Webhook</b>"); m_timestamp->set_text(data->Timestamp); m_timestamp->set_opacity(0.5); |