42 lines
1.0 KiB
C++
42 lines
1.0 KiB
C++
#include "message.h"
|
|
|
|
#include <QStringList>
|
|
#include <vector>
|
|
|
|
Message::Message(QString str)
|
|
{
|
|
if(str.startsWith("PING"))
|
|
{
|
|
command = "PING";
|
|
nick = str.split(':')[1];
|
|
args = nick;
|
|
target = nick;
|
|
}
|
|
else
|
|
{
|
|
// remove the first char, which is ':'
|
|
str = str.remove(0, 1);
|
|
// locate the mid ':' separator
|
|
int mid = str.indexOf(':');
|
|
// the arguments are after the separator
|
|
args = str.right(str.size()-(mid+1));
|
|
// the interesting infos before the separator are separated by spaces
|
|
QStringList list = str.split(' ');
|
|
// source of the message (creates the user if he is new)
|
|
QString temp = list.takeFirst();
|
|
nick = temp.left(temp.indexOf('!'));
|
|
// command issued by the source
|
|
command = list.takeFirst();
|
|
// target of the command
|
|
target = list.takeFirst();
|
|
if(!list.empty())
|
|
target2 = list.takeFirst();
|
|
}
|
|
}
|
|
|
|
Message::~Message()
|
|
{
|
|
|
|
}
|
|
|