1 #include "eveskilltraining.h"
3 #include "eveaccount.h"
5 #include <QXmlStreamReader>
6 #include <QNetworkAccessManager>
7 #include <QNetworkRequest>
8 #include <QNetworkReply>
10 EveSkillTraining::EveSkillTraining(QObject *parent) :
23 bool EveSkillTraining::fromXml(QXmlStreamReader &xml)
25 if (xml.name() != "result") {
26 qDebug() << "Wrong element:" << xml.name();
29 qDebug() << "passed, element is result";
32 inResult = xml.readNextStartElement();
33 qDebug() << "element:" << xml.name();
34 if (xml.name() == "trainingEndTime") {
35 qDebug() << "Parse end time";
36 endTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");//2008-08-17 06:43:00
39 } else if (xml.name() == "trainingStartTime") {
40 qDebug() << "Parse start time";
41 startTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");//2008-08-17 06:43:00
42 qDebug() << startTime;
44 } else if (xml.name() == "trainingTypeID") {
45 typeId = xml.readElementText().toInt();
47 } else if (xml.name() == "trainingStartSP"){
48 startSkillpoints = xml.readElementText().toInt();
50 } else if (xml.name() == "trainingDestinationSP"){
51 destSkillpoints = xml.readElementText().toInt();
53 } else if (xml.name() == "trainingToLevel"){
54 level = xml.readElementText().toInt();
57 xml.skipCurrentElement();
60 qDebug() << "Parsing finished";
64 void EveSkillTraining::fetchInfo()
66 if (m_character == NULL || m_account == NULL)
68 QNetworkRequest req(QUrl(QString("http://api.eveonline.com/char/SkillInTraining.xml.aspx?apiKey=%1&userID=%2&characterID=%3")
69 .arg(m_account->apiKey())
70 .arg(m_account->userId())
71 .arg(m_character->characterId)));
72 m_reply = m_mgr.get(req);
73 connect(m_reply,SIGNAL(finished()),this,SLOT(infoReady()));
76 void EveSkillTraining::infoReady()
78 if (m_reply->error()) {
79 qDebug() << "Failed! " << m_reply->errorString();
82 qDebug() << "Skill reply";
83 QByteArray reply = m_reply->readAll();
84 qDebug() << "Reply ready";
86 QXmlStreamReader reader(reply);
88 reader.readNextStartElement();
89 if (reader.name() != "eveapi")
91 reader.readNextStartElement();
92 if (reader.name() != "currentTime")
94 reader.readNextStartElement(); // end currentTime element
95 reader.readNextStartElement(); // start result element