Load skill queue instead of current skill
authorjasu <jasu@skeletor.(none)>
Sat, 22 May 2010 20:14:58 +0000 (23:14 +0300)
committerjasu <jasu@skeletor.(none)>
Sat, 22 May 2010 20:14:58 +0000 (23:14 +0300)
src/eveskilltraining.cpp

index 52d8f1b..4a09391 100644 (file)
 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)));