From 84a6e647e6fb54b3f2038817748a9337f0e11e25 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Wed, 10 Oct 2012 13:09:39 +0200 Subject: [PATCH 1/4] Send ctcp action when /me is received from XMPP --- backends/libcommuni/ircnetworkplugin.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backends/libcommuni/ircnetworkplugin.cpp b/backends/libcommuni/ircnetworkplugin.cpp index 90e4d663..581ca1b7 100644 --- a/backends/libcommuni/ircnetworkplugin.cpp +++ b/backends/libcommuni/ircnetworkplugin.cpp @@ -142,7 +142,13 @@ void IRCNetworkPlugin::handleMessageSendRequest(const std::string &user, const s std::string target = getTargetName(legacyName); LOG4CXX_INFO(logger, user << ": Session name: " << session << ", message to " << target); - m_sessions[session]->sendCommand(IrcCommand::createMessage(FROM_UTF8(target), FROM_UTF8(message))); + + if (message.find("/me") == 0) { + m_sessions[session]->sendCommand(IrcCommand::createCtcpAction(FROM_UTF8(target), FROM_UTF8(message))); + } + else { + m_sessions[session]->sendCommand(IrcCommand::createMessage(FROM_UTF8(target), FROM_UTF8(message))); + } if (target.find("#") == 0) { handleMessage(user, legacyName, message, TO_UTF8(m_sessions[session]->nickName())); From da1044e0dcabc7bc99285e62f8362ed5237bdd45 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Wed, 10 Oct 2012 13:26:27 +0200 Subject: [PATCH 2/4] Remove /me from incoming messages, add /me to outgoing messagse --- backends/libcommuni/ircnetworkplugin.cpp | 2 +- backends/libcommuni/session.cpp | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/backends/libcommuni/ircnetworkplugin.cpp b/backends/libcommuni/ircnetworkplugin.cpp index 581ca1b7..f2fc4574 100644 --- a/backends/libcommuni/ircnetworkplugin.cpp +++ b/backends/libcommuni/ircnetworkplugin.cpp @@ -144,7 +144,7 @@ void IRCNetworkPlugin::handleMessageSendRequest(const std::string &user, const s LOG4CXX_INFO(logger, user << ": Session name: " << session << ", message to " << target); if (message.find("/me") == 0) { - m_sessions[session]->sendCommand(IrcCommand::createCtcpAction(FROM_UTF8(target), FROM_UTF8(message))); + m_sessions[session]->sendCommand(IrcCommand::createCtcpAction(FROM_UTF8(target), FROM_UTF8(message.substr(4)))); } else { m_sessions[session]->sendCommand(IrcCommand::createMessage(FROM_UTF8(target), FROM_UTF8(message))); diff --git a/backends/libcommuni/session.cpp b/backends/libcommuni/session.cpp index 2eabfe96..6abdb4db 100644 --- a/backends/libcommuni/session.cpp +++ b/backends/libcommuni/session.cpp @@ -158,20 +158,25 @@ void MyIrcSession::on_messageReceived(IrcMessage *message) { } } + QString msg = m->message(); + if (m->isAction()) { + msg = QString("/me ") + msg; + } + std::string target = TO_UTF8(m->target()); LOG4CXX_INFO(logger, user << ": Message from " << target); if (target.find("#") == 0) { bool flags = 0; std::string nickname = TO_UTF8(m->sender().name()); flags = correctNickname(nickname); - np->handleMessage(user, target + suffix, TO_UTF8(m->message()), nickname); + np->handleMessage(user, target + suffix, TO_UTF8(msg), nickname); } else { bool flags = 0; std::string nickname = TO_UTF8(m->sender().name()); flags = correctNickname(nickname); LOG4CXX_INFO(logger, nickname + suffix); - np->handleMessage(user, nickname + suffix, TO_UTF8(m->message())); + np->handleMessage(user, nickname + suffix, TO_UTF8(msg)); } } From 2b5b1ca86034eda5fa4f0386779afefe4d13dda8 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Thu, 11 Oct 2012 08:46:29 +0200 Subject: [PATCH 3/4] update sample.cfg --- spectrum/src/sample2.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spectrum/src/sample2.cfg b/spectrum/src/sample2.cfg index 3181a6a1..0da3b1ec 100644 --- a/spectrum/src/sample2.cfg +++ b/spectrum/src/sample2.cfg @@ -39,7 +39,7 @@ users_per_backend=10 # Full path to backend binary. backend=/usr/bin/spectrum2_libpurple_backend -#backend=/usr/bin/spectrum2_libircclient-qt_backend +#backend=/usr/bin/spectrum2_libcommuni_backend # For skype: #backend=/usr/bin/xvfb-run -n BACKEND_ID -s "-screen 0 10x10x8" -f /tmp/x-skype-gw /usr/bin/spectrum2_skype_backend From da196682876c8e44adecb5fadab113067861bac0 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Thu, 11 Oct 2012 10:45:32 +0200 Subject: [PATCH 4/4] Do not force sqlite3 storage backend --- src/storagebackend.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/storagebackend.cpp b/src/storagebackend.cpp index 2247dee9..ec87e33b 100644 --- a/src/storagebackend.cpp +++ b/src/storagebackend.cpp @@ -10,8 +10,7 @@ namespace Transport { StorageBackend *StorageBackend::createBackend(Config *config, std::string &error) { StorageBackend *storageBackend = NULL; #ifdef WITH_SQLITE - if (CONFIG_STRING(config, "database.type") == "sqlite3" || - (CONFIG_STRING(config, "database.type") == "none" && !CONFIG_BOOL(config, "service.server_mode"))) { + if (CONFIG_STRING(config, "database.type") == "sqlite3") { storageBackend = new SQLite3Backend(config); } #else