/***************************************************************************
- * Copyright (C) 2005-2016 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "ircparser.h"
+#include <QDebug>
+
#include "corenetwork.h"
#include "eventmanager.h"
#include "ircevent.h"
QObject(session),
_coreSession(session)
{
+ // Check if raw IRC logging is enabled
+ _debugLogRawIrc = (Quassel::isOptionSet("debug-irc") || Quassel::isOptionSet("debug-irc-id"));
+ _debugLogRawNetId = Quassel::optionValue("debug-irc-id").toInt();
+
connect(this, SIGNAL(newEvent(Event *)), coreSession()->eventManager(), SLOT(postEvent(Event *)));
}
/* used to be handleServerMsg() */
void IrcParser::processNetworkIncoming(NetworkDataEvent *e)
{
- CoreNetwork *net = qobject_cast<CoreNetwork *>(e->network());
+ auto *net = qobject_cast<CoreNetwork *>(e->network());
if (!net) {
qWarning() << "Received network event without valid network pointer!";
return;
return;
}
+ // Log the message if enabled and network ID matches or allows all
+ if (_debugLogRawIrc
+ && (_debugLogRawNetId == -1 || net->networkId().toInt() == _debugLogRawNetId)) {
+ // Include network ID
+ qDebug() << "IRC net" << net->networkId() << "<<" << msg;
+ }
+
// Now we split the raw message into its various parts...
QString prefix;
QByteArray trailing;
// :ChanServ!ChanServ@services. NOTICE egst :[#apache] Welcome, this is #apache. Please read the in-channel topic message. This channel is being logged by IRSeekBot. If you have any question please see http://blog.freenode.net/?p=68
if (!net->isChannelName(target)) {
QString decMsg = net->serverDecode(params.at(1));
- QRegExp welcomeRegExp("^\\[([^\\]]+)\\] ");
+ QRegExp welcomeRegExp(R"(^\[([^\]]+)\] )");
if (welcomeRegExp.indexIn(decMsg) != -1) {
QString channelname = welcomeRegExp.cap(1);
decMsg = decMsg.mid(welcomeRegExp.matchedLength());