From 03b67c9dc0ce27ac9b2fca6cc881230fc28fdeee Mon Sep 17 00:00:00 2001 From: jasu Date: Sat, 22 May 2010 23:14:58 +0300 Subject: [PATCH] Load skill queue instead of current skill --- src/eveskilltraining.cpp | 74 ++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 46 deletions(-) diff --git a/src/eveskilltraining.cpp b/src/eveskilltraining.cpp index 52d8f1b..4a09391 100644 --- a/src/eveskilltraining.cpp +++ b/src/eveskilltraining.cpp @@ -13,10 +13,6 @@ EveSkillTraining::EveSkillTraining(QObject *parent) : QObject(parent), training(false), - typeId(0), - startSkillpoints(0), - destSkillpoints(0), - level(0), m_character(NULL), m_account(NULL), m_reply(NULL) @@ -29,58 +25,44 @@ bool EveSkillTraining::fromXml(QXmlStreamReader &xml) if (xml.name() != "eveapi") return false; xml.readNextStartElement(); - if (xml.name() != "currentTime") + if (xml.name() != "currentTime") { return false; + } - xml.readNextStartElement(); // end currentTime element + currentTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss"); + //xml.readNextStartElement(); // end currentTime element bool inResult = xml.readNextStartElement(); // start result element if (xml.name() != "result") { qDebug() << "Wrong element:" << xml.name(); return false; } inResult = xml.readNextStartElement(); + if (!inResult || xml.name() != "rowset" ) { + qDebug() << "No rowset element"; + return false; + } + inResult = xml.readNextStartElement(); while (inResult) { - qDebug() << "element:" << xml.name(); - if (xml.name() == "trainingEndTime") { - qDebug() << "Parse end time"; - endTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");//2008-08-17 06:43:00 - startTime.setTimeSpec(Qt::UTC); - qDebug()<< endTime; - - } else if (xml.name() == "trainingStartTime") { - qDebug() << "Parse start time"; - startTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");//2008-08-17 06:43:00 - startTime.setTimeSpec(Qt::UTC); - qDebug() << startTime; - - } else if (xml.name() == "trainingTypeID") { - typeId = xml.readElementText().toInt(); + if (xml.name() == "row") { + TrainingEntry entry; + entry.typeId = xml.attributes().value("","typeID").toString().toInt(); + entry.destSkillpoints = xml.attributes().value("","endSP").toString().toInt(); + entry.startSkillpoints = xml.attributes().value("","startSP").toString().toInt(); + entry.level = xml.attributes().value("","level").toString().toInt(); + if (xml.attributes().hasAttribute("","startTime")) { + entry.startTime = QDateTime::fromString(xml.attributes().value("","startTime").toString(), + "yyyy-MM-dd hh:mm:ss"); + entry.startTime.setTimeSpec(Qt::UTC); + } + if (xml.attributes().hasAttribute("","endTime")) { + entry.endTime = QDateTime::fromString(xml.attributes().value("","endtTime").toString(), + "yyyy-MM-dd hh:mm:ss"); + entry.endTime.setTimeSpec(Qt::UTC); + } + m_trainingQueue.append(entry); - } else if (xml.name() == "trainingStartSP"){ - startSkillpoints = xml.readElementText().toInt(); - - } else if (xml.name() == "trainingDestinationSP"){ - destSkillpoints = xml.readElementText().toInt(); - - } else if (xml.name() == "trainingToLevel"){ - level = xml.readElementText().toInt(); - } else if (xml.name() == "skillInTraining" ) { - - training = xml.readElementText().toInt() == 1; - qDebug() << "Training?" << training; - } else if (xml.name() == "currentTQTime" ) { - currentTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss"); - startTime.setTimeSpec(Qt::UTC); - qDebug() << "Current: " << currentTime; - } else { - // Noop - qDebug() << " Skip this"; - xml.skipCurrentElement(); } - inResult = xml.readNextStartElement(); - - } // while - inResult = xml.readNextStartElement(); + } if (xml.name() == "cachedUntil" ) { cachedUntil = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss"); cachedUntil.setTimeSpec(Qt::UTC); @@ -100,7 +82,7 @@ void EveSkillTraining::fetchInfo() return; } } - QNetworkRequest req(QUrl(QString("http://api.eveonline.com/char/SkillInTraining.xml.aspx?apiKey=%1&userID=%2&characterID=%3") + QNetworkRequest req(QUrl(QString("http://api.eveonline.com/char/SkillQueue.xml.aspx?apiKey=%1&userID=%2&characterID=%3") .arg(m_account->apiKey()) .arg(m_account->userId()) .arg(m_character->characterId))); -- 1.7.9.5