diff options
author | louiz’ <louiz@louiz.org> | 2016-08-12 16:39:19 +0200 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2016-08-12 16:39:19 +0200 |
commit | 8ec823be4fc587abb7282a06a12f9df9c37810d2 (patch) | |
tree | 7ce77108ac2e6da63ee89a4f5fb6dbc97fe8a67f /src/bridge | |
parent | 7ffe278e0556d222291840dc91c785ccf824fee5 (diff) | |
download | biboumi-8ec823be4fc587abb7282a06a12f9df9c37810d2.tar.gz biboumi-8ec823be4fc587abb7282a06a12f9df9c37810d2.tar.bz2 biboumi-8ec823be4fc587abb7282a06a12f9df9c37810d2.tar.xz biboumi-8ec823be4fc587abb7282a06a12f9df9c37810d2.zip |
Save received and sent messages into the database
Diffstat (limited to 'src/bridge')
-rw-r--r-- | src/bridge/bridge.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/bridge/bridge.cpp b/src/bridge/bridge.cpp index ac61dbc..1812611 100644 --- a/src/bridge/bridge.cpp +++ b/src/bridge/bridge.cpp @@ -224,6 +224,11 @@ void Bridge::send_channel_message(const Iid& iid, const std::string& body) irc->send_channel_message(iid.get_local(), action_prefix + line.substr(4) + "\01"); else irc->send_channel_message(iid.get_local(), line); + + const auto xmpp_body = this->make_xmpp_body(line); + Database::store_muc_message(this->get_bare_jid(), iid, std::chrono::system_clock::now(), + std::get<0>(xmpp_body), irc->get_own_nick()); + for (const auto& resource: this->resources_in_chan[iid.to_tuple()]) this->xmpp.send_muc_message(std::to_string(iid), irc->get_own_nick(), this->make_xmpp_body(line), this->user_jid + "/" + resource); @@ -578,10 +583,15 @@ void Bridge::send_message(const Iid& iid, const std::string& nick, const std::st const auto encoding = in_encoding_for(*this, iid); if (muc) { + const auto xmpp_body = this->make_xmpp_body(body, encoding); + Database::store_muc_message(this->get_bare_jid(), iid, std::chrono::system_clock::now(), + std::get<0>(xmpp_body), nick); + for (const auto& resource: this->resources_in_chan[iid.to_tuple()]) { this->xmpp.send_muc_message(std::to_string(iid), nick, this->make_xmpp_body(body, encoding), this->user_jid + "/" + resource); + } } else |