From c83fd4c4b188f5646639f8b73b3eadf0823d7c26 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Wed, 11 Nov 2015 08:01:19 +0100 Subject: [PATCH] Support only libcommuni >= 3.0.0 --- CMakeLists.txt | 2 +- backends/libcommuni/session.cpp | 33 ++++++++++++++----------------- backends/libcommuni/session.h | 4 ++-- cmake_modules/CommuniConfig.cmake | 11 ++++++----- packaging/fedora/spectrum2.spec | 17 ++-------------- 5 files changed, 26 insertions(+), 41 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 44193cac..efcb79a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -346,7 +346,7 @@ if (PROTOBUF_FOUND) endif() if(IRC_FOUND) - ADD_DEFINITIONS(-DCOMMUNI_SHARED) + ADD_DEFINITIONS(-DIRC_SHARED) message("IRC plugin : yes") include_directories(${QT_QTNETWORK_INCLUDE_DIR}) include_directories(${IRC_INCLUDE_DIR}) diff --git a/backends/libcommuni/session.cpp b/backends/libcommuni/session.cpp index 31ac3d54..c3f82f6b 100644 --- a/backends/libcommuni/session.cpp +++ b/backends/libcommuni/session.cpp @@ -23,9 +23,6 @@ #include #include #include -#if COMMUNI_VERSION < 0x020000 -#include -#endif #include "backports.h" #include "ircnetworkplugin.h" @@ -35,11 +32,11 @@ #include "transport/logging.h" -DEFINE_LOGGER(logger, "IRCSession"); +DEFINE_LOGGER(logger, "IRCConnection"); static bool sentList; -MyIrcSession::MyIrcSession(const std::string &user, IRCNetworkPlugin *np, const std::string &suffix, QObject* parent) : IrcSession(parent) +MyIrcSession::MyIrcSession(const std::string &user, IRCNetworkPlugin *np, const std::string &suffix, QObject* parent) : IrcConnection(parent) { this->np = np; this->user = user; @@ -137,7 +134,7 @@ bool MyIrcSession::correctNickname(std::string &nickname) { void MyIrcSession::on_joined(IrcMessage *message) { IrcJoinMessage *m = (IrcJoinMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); bool op = correctNickname(nickname); getIRCBuddy(TO_UTF8(m->channel().toLower()), nickname).setOp(op); np->handleParticipantChanged(user, nickname, TO_UTF8(m->channel().toLower()) + suffix, op, pbnetwork::STATUS_ONLINE); @@ -147,7 +144,7 @@ void MyIrcSession::on_joined(IrcMessage *message) { void MyIrcSession::on_parted(IrcMessage *message) { IrcPartMessage *m = (IrcPartMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); bool op = correctNickname(nickname); removeIRCBuddy(TO_UTF8(m->channel().toLower()), nickname); LOG4CXX_INFO(logger, user << ": " << nickname << " parted " << TO_UTF8(m->channel().toLower()) + suffix); @@ -156,7 +153,7 @@ void MyIrcSession::on_parted(IrcMessage *message) { void MyIrcSession::on_quit(IrcMessage *message) { IrcQuitMessage *m = (IrcQuitMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); bool op = correctNickname(nickname); for(AutoJoinMap::iterator it = m_autoJoin.begin(); it != m_autoJoin.end(); it++) { @@ -171,7 +168,7 @@ void MyIrcSession::on_quit(IrcMessage *message) { void MyIrcSession::on_nickChanged(IrcMessage *message) { IrcNickMessage *m = (IrcNickMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); for(AutoJoinMap::iterator it = m_autoJoin.begin(); it != m_autoJoin.end(); it++) { @@ -214,7 +211,7 @@ void MyIrcSession::on_modeChanged(IrcMessage *message) { void MyIrcSession::on_topicChanged(IrcMessage *message) { IrcTopicMessage *m = (IrcTopicMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); LOG4CXX_INFO(logger, user << ": " << nickname << " topic changed to " << TO_UTF8(m->topic())); @@ -224,14 +221,14 @@ void MyIrcSession::on_topicChanged(IrcMessage *message) { void MyIrcSession::on_messageReceived(IrcMessage *message) { IrcPrivateMessage *m = (IrcPrivateMessage *) message; if (m->isRequest()) { - QString request = m->message().split(" ", QString::SkipEmptyParts).value(0).toUpper(); + QString request = m->content().split(" ", QString::SkipEmptyParts).value(0).toUpper(); if (request == "PING" || request == "TIME" || request == "VERSION") { LOG4CXX_INFO(logger, user << ": " << TO_UTF8(request) << " received and has been answered"); return; } } - QString msg = m->message(); + QString msg = m->content(); if (m->isAction()) { msg = QString("/me ") + msg; } @@ -249,12 +246,12 @@ void MyIrcSession::on_messageReceived(IrcMessage *message) { std::string target = TO_UTF8(m->target().toLower()); LOG4CXX_INFO(logger, user << ": Message from " << target); if (target.find("#") == 0) { - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); np->handleMessage(user, target + suffix, TO_UTF8(msg), nickname, TO_UTF8(html)); } else { - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); if (m_pms.find(nickname) != m_pms.end()) { if (hasIRCBuddy(m_pms[nickname], nickname)) { @@ -393,19 +390,19 @@ void MyIrcSession::awayTimeout() { void MyIrcSession::on_noticeMessageReceived(IrcMessage *message) { IrcNoticeMessage *m = (IrcNoticeMessage *) message; - LOG4CXX_INFO(logger, user << ": NOTICE " << TO_UTF8(m->message())); + LOG4CXX_INFO(logger, user << ": NOTICE " << TO_UTF8(m->content())); - QString msg = m->message(); + QString msg = m->content(); CommuniBackport::toPlainText(msg); std::string target = TO_UTF8(m->target().toLower()); if (target.find("#") == 0) { - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); np->handleMessage(user, target + suffix, TO_UTF8(msg), nickname); } else { - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); if (nickname.find(".") != std::string::npos) { return; diff --git a/backends/libcommuni/session.h b/backends/libcommuni/session.h index 929a84a7..24d26549 100644 --- a/backends/libcommuni/session.h +++ b/backends/libcommuni/session.h @@ -22,7 +22,7 @@ #define SESSION_H #ifndef Q_MOC_RUN -#include +#include #include #include "Swiften/Swiften.h" #include @@ -33,7 +33,7 @@ using namespace Transport; class IRCNetworkPlugin; -class MyIrcSession : public IrcSession +class MyIrcSession : public IrcConnection { Q_OBJECT diff --git a/cmake_modules/CommuniConfig.cmake b/cmake_modules/CommuniConfig.cmake index e2315310..31add02b 100644 --- a/cmake_modules/CommuniConfig.cmake +++ b/cmake_modules/CommuniConfig.cmake @@ -1,13 +1,14 @@ find_package(Qt4) include( ${QT_USE_FILE} ) -FIND_LIBRARY(IRC_LIBRARY NAMES Communi PATHS ${QT_LIBRARY_DIR}) -FIND_PATH(IRC_INCLUDE_DIR NAMES "ircglobal.h" PATHS ${QT_INCLUDE_DIR} PATH_SUFFIXES Communi) +FIND_LIBRARY(IRC_LIBRARY NAMES IrcCore PATHS ${QT_LIBRARY_DIR}) +FIND_PATH(IRC_INCLUDE_DIR NAMES "IrcCore/ircglobal.h" PATHS ${QT_INCLUDE_DIR} PATH_SUFFIXES Communi) # message( STATUS ${IRC_LIBRARY}) if( IRC_LIBRARY AND IRC_INCLUDE_DIR ) - message( STATUS "Found libCommuni ${IRC_LIBRARY}, ${IRC_INCLUDE_DIR}") - set( IRC_FOUND 1 ) + set(IRC_INCLUDE_DIR ${IRC_INCLUDE_DIR}/IrcCore ${IRC_INCLUDE_DIR}/IrcUtil ${IRC_INCLUDE_DIR}/IrcModel) + message( STATUS "Found libCommuni ${IRC_LIBRARY}, ${IRC_INCLUDE_DIR}") + set( IRC_FOUND 1 ) else() - message( STATUS "Could NOT find libCommuni" ) + message( STATUS "Could NOT find libCommuni" ) endif() diff --git a/packaging/fedora/spectrum2.spec b/packaging/fedora/spectrum2.spec index 91b60256..4c16d052 100644 --- a/packaging/fedora/spectrum2.spec +++ b/packaging/fedora/spectrum2.spec @@ -25,7 +25,7 @@ BuildRequires: libidn-devel BuildRequires: expat-devel BuildRequires: avahi-devel BuildRequires: log4cxx-devel -#BuildRequires: swiften-devel +BuildRequires: swiften-devel BuildRequires: libcommuni-devel Requires: libtransport%{?_isa} = %{version}-%{release} @@ -58,7 +58,7 @@ exit 0 %files %defattr(-, root, root,-) -%doc README +%doc README.md %{_bindir}/spectrum2 %{_bindir}/spectrum2_manager /etc/spectrum2/* @@ -135,19 +135,6 @@ Spectrum2 Swiften backend %defattr(-, root, root,-) /usr/bin/spectrum2_swiften_backend -%package libyahoo2-backend -Summary: Libtransport -Group: Development/Libraries -Requires: boost -Requires: libtransport%{?_isa} = %{version}-%{release} - -%description libyahoo2-backend -Spectrum2 libyahoo2 backend - -%files libyahoo2-backend -%defattr(-, root, root,-) -/usr/bin/spectrum2_libyahoo2_backend - %package twitter-backend Summary: Libtransport Group: Development/Libraries