From 7fb0b671bbe6150d60b9f1efd4d8abc885c23844 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Sun, 18 May 2014 20:48:42 +0200 Subject: Also do that cut of message on \n for private messages, and handle /me --- src/bridge/bridge.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/bridge') diff --git a/src/bridge/bridge.cpp b/src/bridge/bridge.cpp index 7a60267..d803e5e 100644 --- a/src/bridge/bridge.cpp +++ b/src/bridge/bridge.cpp @@ -180,8 +180,21 @@ void Bridge::send_private_message(const Iid& iid, const std::string& body, const if (iid.chan.empty() || iid.server.empty()) return ; IrcClient* irc = this->get_irc_client(iid.server); - if (irc) - irc->send_private_message(iid.chan, body, type); + if (!irc) + { + log_warning("Cannot send message: no client exist for server " << iid.server); + return; + } + std::vector lines = utils::split(body, '\n', true); + if (lines.empty()) + return ; + for (const std::string& line: lines) + { + if (line.substr(0, 4) == "/me ") + irc->send_private_message(iid.chan, action_prefix + line.substr(4) + "\01", type); + else + irc->send_private_message(iid.chan, line, type); + } } void Bridge::leave_irc_channel(Iid&& iid, std::string&& status_message) -- cgit v1.2.3