Esempio n. 1
0
quint16 metaInformation::readAboutUserInfo(icqBuffer *socket)
{
	quint16 length = 1;
	aboutInfoSuccess = true;
		
	quint8 successByte = convertToInt8(socket->read(1));
		
	if ( successByte != 0x0a)
	{
			aboutInfoSuccess = false;
			return length;
	}
	
	quint16 aboutLength = byteArrayToLEInt16(socket->read(2));
	about = socket->read(aboutLength- 1);
	socket->read(1);
	length = length + aboutLength  + 2;
	

	
	
	
	
	return length;	
}
Esempio n. 2
0
void buddyPicture::saveAvatar(quint16 length)
{
	quint8 uinLength = convertToInt8(buffer->read(1));
	length -= 1;
	
	
	QString uin = QString::fromUtf8(buffer->read(uinLength));
	length -= uinLength;
	
	
	buffer->read(4);
	
	length -= 4;
	
	QByteArray hash = buffer->read(16);
	
	length -= 16;
	
	buffer->read(21);
	
	length -= 21;
	
	quint16 iconLength = convertToInt16(buffer->read(2));
	length -= 2;
	
	if ( iconLength )
	{
                QSettings settings(QSettings::NativeFormat, QSettings::UserScope, "qutim/qutim."+m_profile_name+"/ICQ."+m_mine_uin, "contactlist");
		settings.beginGroup(uin);
		settings.setValue("iconhash", hash.toHex());
		settings.endGroup();
		
		QString iconPath = settings.fileName().section('/', 0, -3) + "/icqicons";
		
		QDir iconDir(iconPath);
			if ( !iconDir.exists() )
				iconDir.mkpath(iconPath);
		
		QFile iconFile(iconPath + "/" + hash.toHex());
		
		
		if ( iconFile.open(QIODevice::WriteOnly) )
		{
			iconFile.write(buffer->read(iconLength));
		}
			
		emit updateAvatar(uin, hash);
	}
	length -= iconLength;
	
	if ( length )
		buffer->read(length);
}
Esempio n. 3
0
quint16 metaInformation::readInterestsUserInfo(icqBuffer *socket)
{
	quint16 length = 1;
	interestsInfoSuccess = true;
		
	quint8 successByte = convertToInt8(socket->read(1));
		
	if ( successByte != 0x0a)
	{
			interestsInfoSuccess = false;
			return length;
	}
	
	
	

	
	quint8 interestsCount = convertToInt8(socket->read(1));
	length++;
	
	for(int i = 0; i < interestsCount; i++)
	{
		
	if(i == 0)
	{
		interCode1 = byteArrayToLEInt16(socket->read(2));
		length += 2;
		
		
		quint16 interLength1 = byteArrayToLEInt16(socket->read(2));
		interKeyWords1 = socket->read(interLength1  - 1);
		socket->read(1);
		
		length = length + interLength1  + 2;
	}	
	else if ( i == 1)
	{
		interCode2 = byteArrayToLEInt16(socket->read(2));
		length += 2;
		
		
		quint16 interLength2 = byteArrayToLEInt16(socket->read(2));
		interKeyWords2 = socket->read(interLength2  - 1);
		socket->read(1);
		
		length = length + interLength2  + 2;
	}
	else if ( i == 2)
	{
		interCode3 = byteArrayToLEInt16(socket->read(2));
		length += 2;
		
		
		quint16 interLength3 = byteArrayToLEInt16(socket->read(2));
		interKeyWords3 = socket->read(interLength3  - 1);
		socket->read(1);
		
		length = length + interLength3  + 2;
	}
	else if ( i == 3 )
	{
		interCode4 = byteArrayToLEInt16(socket->read(2));
		length += 2;
		
		
		quint16 interLength4 = byteArrayToLEInt16(socket->read(2));
		interKeyWords4 = socket->read(interLength4  - 1);
		socket->read(1);
		
		length = length + interLength4  + 2;
	} else {
		socket->read(2);
		length += 2;
		quint16 interLength= byteArrayToLEInt16(socket->read(2));
		socket->read(interLength);
		length = length + interLength  + 2;
	}
	
	}
	
	
	return length;	
}
Esempio n. 4
0
quint16 metaInformation::readWorkUserInfo(icqBuffer *socket)
{
	quint16 length = 1;
	workInfoSuccess = true;
		
	quint8 successByte = convertToInt8(socket->read(1));
		
	if ( successByte != 0x0a)
	{
			workInfoSuccess = false;
			return length;
	}
	
	
	

	
	
	
	
	quint16 cityLength = byteArrayToLEInt16(socket->read(2));
	workCity = socket->read(cityLength - 1);
	socket->read(1);
	
	length = length + cityLength + 2;
	
	
	
	
	quint16 stateLength = byteArrayToLEInt16(socket->read(2));
	workState = socket->read(stateLength - 1);
	socket->read(1);
	length = length + stateLength + 2;
	
	
	quint16 phoneLength = byteArrayToLEInt16(socket->read(2));
	workPhone = socket->read(phoneLength - 1);
	socket->read(1);
	length = length + phoneLength  + 2;
	
	quint16 faxLength = byteArrayToLEInt16(socket->read(2));
	workFax = socket->read(faxLength - 1);
	socket->read(1);
	length = length + faxLength  + 2;
	
	quint16 addressLength = byteArrayToLEInt16(socket->read(2));
	workAddress = socket->read(addressLength - 1);
	socket->read(1);
	length = length + addressLength  + 2;
	
	quint16 zipLength = byteArrayToLEInt16(socket->read(2));
	workZip = socket->read(zipLength - 1);
	socket->read(1);
	length = length + zipLength  + 2;

	workCountry = byteArrayToLEInt16(socket->read(2));
	length += 2;
	
	quint16 companyLength = byteArrayToLEInt16(socket->read(2));
	workCompany = socket->read(companyLength - 1);
	socket->read(1);
	length = length + companyLength  + 2;
	
	quint16 departmentLength = byteArrayToLEInt16(socket->read(2));
	workDepartment = socket->read(departmentLength - 1);
	socket->read(1);
	length = length + departmentLength  + 2;
	
	quint16 positionLength = byteArrayToLEInt16(socket->read(2));
	workPosition = socket->read(positionLength - 1);
	socket->read(1);
	length = length + positionLength  + 2;
	
	workOccupation = byteArrayToLEInt16(socket->read(2));
	length += 2;
	
	quint16 webpageLength = byteArrayToLEInt16(socket->read(2));
	workWebPage = socket->read(webpageLength - 1);
	socket->read(1);
	length = length + webpageLength  + 2;
	
	
	return length;	
}
Esempio n. 5
0
quint16 metaInformation::readMoreUserInfo(icqBuffer *socket)
{
	quint16 length = 1;
	moreInfoSuccess = true;
		
	quint8 successByte = convertToInt8(socket->read(1));
		
	if ( successByte != 0x0a)
	{
			moreInfoSuccess = false;
			return length;
	}
	
	
	
	
	moreAge = byteArrayToLEInt16(socket->read(2));
	length += 2;
	
	moreGender = convertToInt8(socket->read(1));
	
	length ++;
	
	
	
	
	quint16 homePageLength = byteArrayToLEInt16(socket->read(2));
	homepage = socket->read(homePageLength - 1);
	socket->read(1);
	
	length = length + homePageLength + 2;
	
	moreBirthYear = byteArrayToLEInt16(socket->read(2));
	
	length += 2;
	
	moreBirthMonth = convertToInt8(socket->read(1));
	
	length ++;
	
	moreBirthDay = convertToInt8(socket->read(1));
	
	length ++;
	
	
	moreLang1 = convertToInt8(socket->read(1));
	
	length ++;
	
	moreLang2 = convertToInt8(socket->read(1));
	
	length ++;
	
	moreLang3 = convertToInt8(socket->read(1));
	
	length ++;
	
	
	socket->read(2);
	
	length += 2;
	
	
	
	quint16 cityLength = byteArrayToLEInt16(socket->read(2));
	moreCity = socket->read(cityLength - 1);
	socket->read(1);
	length = length + cityLength + 2;

	
	quint16 stateLength = byteArrayToLEInt16(socket->read(2));
	moreState = socket->read(stateLength - 1);
	socket->read(1);
	length = length + stateLength  + 2;
	
	
	moreCountry  = byteArrayToLEInt16(socket->read(2));
	
	length += 2;
	
	
	socket->read(1);
	
	length++;
	
	return length;	
}
Esempio n. 6
0
quint16 metaInformation::readBasicUserInfo(icqBuffer *socket)
{
	quint16 length = 1;
	basicInfoSuccess = true;
		
	quint8 successByte = convertToInt8(socket->read(1));
		
	if ( successByte != 0x0a)
	{
			basicInfoSuccess = false;
			return length;
	}
	
	
	
	
	quint16 nickLength = byteArrayToLEInt16(socket->read(2));
	length += 2;
	
	basicNick = socket->read(nickLength - 1);
	socket->read(1);
	length += nickLength;
	
	
	quint16 firstNameLength = byteArrayToLEInt16(socket->read(2));
	basicFirst = socket->read(firstNameLength - 1);
	socket->read(1);
	
	length = length + firstNameLength + 2;
	
	quint16 lastNameLength = byteArrayToLEInt16(socket->read(2));
	basicLast = socket->read(lastNameLength - 1);
	socket->read(1);
	length = length + lastNameLength + 2;
	
	
	quint16 emailLength = byteArrayToLEInt16(socket->read(2));
	basicEmail = socket->read(emailLength - 1);
	socket->read(1);
	length = length + emailLength  + 2;
	
	quint16 cityLength = byteArrayToLEInt16(socket->read(2));
	basicCity = socket->read(cityLength - 1);
	socket->read(1);
	length = length + cityLength  + 2;
	
	quint16 stateLength = byteArrayToLEInt16(socket->read(2));
	basicState = socket->read(stateLength - 1);
	socket->read(1);
	length = length + stateLength  + 2;
	
	quint16 phoneLength = byteArrayToLEInt16(socket->read(2));
	basicPhone = socket->read(phoneLength - 1);
	socket->read(1);
	length = length +phoneLength  + 2;
	
	quint16 faxLength = byteArrayToLEInt16(socket->read(2));
	basicFax= socket->read(faxLength - 1);
	socket->read(1);
	length = length + faxLength  + 2;
	
	quint16 addressLength = byteArrayToLEInt16(socket->read(2));
	basicAddress= socket->read(addressLength - 1);
	socket->read(1);
	length = length + addressLength  + 2;
	
	quint16 cellLength = byteArrayToLEInt16(socket->read(2));
	basicCell= socket->read(cellLength - 1);
	socket->read(1);
	length = length + cellLength  + 2;
	
	quint16 zipLength = byteArrayToLEInt16(socket->read(2));
	basicZip= socket->read(zipLength - 1);
	socket->read(1);
	length = length + zipLength  + 2;
	
	country = byteArrayToLEInt16(socket->read(2));

	length  += 2;
	
	socket->read(1);
	
	basicAuthFlag = convertToInt8(socket->read(1));
	webAware = convertToInt8(socket->read(1));
	socket->read(1);
	publishEmail = convertToInt8(socket->read(1));
	
	
	length += 5;
	
	return length;	
}
Esempio n. 7
0
quint16 metaInformation::readSearchResult(icqBuffer *socket, bool last)
{
	quint16 length = 1;
	founded = true;
	
	quint8 successByte = convertToInt8(socket->read(1));
	
	if ( successByte != 0x0a)
	{
		founded = false;
		return length;
	}
	
	socket->read(2);
	length += 2;
	quint32 userUin = byteArrayToLEInt32(socket->read(4));
	length += 4;
	foundedUin = QString::number(userUin);
	
	
	quint16 nickLength = byteArrayToLEInt16(socket->read(2));
	
	length += 2;
	foundedNick = socket->read(nickLength - 1);
	socket->read(1);
	length += nickLength;
	
	quint16 firstLength = byteArrayToLEInt16(socket->read(2));
		
	length += 2;
	foundedFirst = socket->read(firstLength - 1);
	socket->read(1);
	length += firstLength;
		
	quint16 lastLength = byteArrayToLEInt16(socket->read(2));
		
	length += 2;
	foundedLast = socket->read(lastLength - 1);
	socket->read(1);
	length += lastLength;
	
	quint16 emailLength = byteArrayToLEInt16(socket->read(2));
		
	length += 2;
	foundedEmail = socket->read(emailLength - 1);
	socket->read(1);
	length += emailLength;
	
	
	authFlag = convertToInt8(socket->read(1));
	
	length += 1;
	
	foundedStatus  = byteArrayToLEInt16(socket->read(2));
	
	length += 2;
	
	foundedGender = convertToInt8(socket->read(1));
	length += 1;
	
	foundedAge = byteArrayToLEInt16(socket->read(2));
	
	length += 2;
	
	
	if ( last )
	{
		socket->read(4);
		length += 4;
	}
	
	return length;
}
Esempio n. 8
0
File: tdata.c Progetto: amic3r/Terra
TInt8 TDataToInt8(const TData *context)
{
	if (context) return convertToInt8(context->data, context->type);
	return 0;
}