void Server::socketHasData() {
while(socket.canReadLine()) {
QString s = socket.readLine().trimmed();
- qDebug() << "Read" << s;
+ //qDebug() << "Read" << s;
emit recvRawServerMsg(s);
//Message *msg = Message::createFromServerString(this, s);
handleServerMsg(s);
}
void Server::putRawLine(QString s) {
- qDebug() << "SentRaw: " << s;
+// qDebug() << "SentRaw: " << s;
s += "\r\n";
socket.write(s.toAscii());
}
m += " " + params[i];
}
if(!params.isEmpty()) m += " :" + params.last();
- qDebug() << "Sent: " << m;
+// qDebug() << "Sent: " << m;
m += "\r\n";
socket.write(m.toAscii());
}
putCmd("PART", params);
}
+void Server::handleUserQuery(QString bufname, QString msg) {
+ QString nick = msg.section(' ', 0, 0);
+ if(!nick.isEmpty()) emit queryRequested(network, nick);
+}
+
void Server::handleUserQuit(QString bufname, QString msg) {
putCmd("QUIT", QStringList(msg));
}
QStringList params;
params << bufname << msg;
putCmd("PRIVMSG", params);
- emit displayMsg(Message::plain(params[0], msg, ownNick, Message::Self));
+ if(isChannelName(bufname)) {
+ emit displayMsg(Message::plain(params[0], msg, ownNick, Message::Self));
+ } else {
+ emit displayMsg(Message::plain(params[0], msg, ownNick, Message::Self|Message::PrivMsg));
+ }
}
void Server::handleUserTopic(QString bufname, QString msg) {
void Server::handleServerPrivmsg(QString prefix, QStringList params) {
updateNickFromMask(prefix);
+ Q_ASSERT(params.count() >= 2);
if(params.count()<2) emit displayMsg(Message::plain(params[0], "", prefix));
- else emit displayMsg(Message::plain(params[0], params[1], prefix));
+ else {
+ if(params[0] == ownNick) {
+ emit displayMsg(Message::plain("", params[1], prefix, Message::PrivMsg));
+ } else {
+ Q_ASSERT(isChannelName(params[0])); // should be channel!
+ emit displayMsg(Message::plain(params[0], params[1], prefix));
+ }
+ }
}
void Server::handleServerQuit(QString prefix, QStringList params) {
// send performlist
QStringList performList = networkSettings["Perform"].toString().split( "\n" );
int count = performList.count();
- for ( int a = 0; a < count; a++ ) {
- if ( !performList[a].isEmpty() ) {
- userInput( network, "", performList[a] );
- }
+ for(int a = 0; a < count; a++) {
+ if(!performList[a].isEmpty() ) {
+ userInput(network, "", performList[a]);
+ }
}
}
/* RPL_ISUPPORT */
+// TODO Complete 005 handling, also use sensible defaults for non-sent stuff
void Server::handleServer005(QString prefix, QStringList params) {
foreach(QString p, params) {
QString key = p.section("=", 0, 0);
/* Topic set by... */
void Server::handleServer333(QString prefix, QStringList params) {
emit displayMsg(Message::server(params[0],
- tr("Topic set by %1 on %2").arg(params[1]).arg(QDateTime::fromTime_t(params[2].toUInt()).toString())));
+ tr("Topic set by %1 on %2").arg(params[1]).arg(QDateTime::fromTime_t(params[2].toUInt()).toString())));
}
/* RPL_NAMREPLY */