Support only libcommuni >= 3.0.0

This commit is contained in:
Jan Kaluza 2015-11-11 08:01:19 +01:00
parent c4181a9c48
commit c83fd4c4b1
5 changed files with 26 additions and 41 deletions

View file

@ -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})

View file

@ -23,9 +23,6 @@
#include <iostream>
#include <IrcCommand>
#include <IrcMessage>
#if COMMUNI_VERSION < 0x020000
#include <IrcUtil>
#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;

View file

@ -22,7 +22,7 @@
#define SESSION_H
#ifndef Q_MOC_RUN
#include <IrcSession>
#include <IrcConnection>
#include <transport/networkplugin.h>
#include "Swiften/Swiften.h"
#include <boost/smart_ptr/make_shared.hpp>
@ -33,7 +33,7 @@ using namespace Transport;
class IRCNetworkPlugin;
class MyIrcSession : public IrcSession
class MyIrcSession : public IrcConnection
{
Q_OBJECT

View file

@ -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()

View file

@ -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