1 // Copyright (C) 2010 Jaakko Kyro <jkyro@korjaussarja.net>
2 // This file is licenced under GPL, see COPYING
3 // for full licence information
4 #include "eveskilltraining.h"
6 #include "eveaccount.h"
8 #include <QXmlStreamReader>
9 #include <QNetworkAccessManager>
10 #include <QNetworkRequest>
11 #include <QNetworkReply>
13 EveSkillTraining::EveSkillTraining(QObject *parent) :
26 bool EveSkillTraining::fromXml(QXmlStreamReader &xml)
28 if (xml.name() != "result") {
29 qDebug() << "Wrong element:" << xml.name();
32 qDebug() << "passed, element is result";
35 inResult = xml.readNextStartElement();
36 qDebug() << "element:" << xml.name();
37 if (xml.name() == "trainingEndTime") {
38 qDebug() << "Parse end time";
39 endTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");//2008-08-17 06:43:00
42 } else if (xml.name() == "trainingStartTime") {
43 qDebug() << "Parse start time";
44 startTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");//2008-08-17 06:43:00
45 qDebug() << startTime;
47 } else if (xml.name() == "trainingTypeID") {
48 typeId = xml.readElementText().toInt();
50 } else if (xml.name() == "trainingStartSP"){
51 startSkillpoints = xml.readElementText().toInt();
53 } else if (xml.name() == "trainingDestinationSP"){
54 destSkillpoints = xml.readElementText().toInt();
56 } else if (xml.name() == "trainingToLevel"){
57 level = xml.readElementText().toInt();
60 xml.skipCurrentElement();
63 qDebug() << "Parsing finished";
67 void EveSkillTraining::fetchInfo()
69 if (m_character == NULL || m_account == NULL)
71 QNetworkRequest req(QUrl(QString("http://api.eveonline.com/char/SkillInTraining.xml.aspx?apiKey=%1&userID=%2&characterID=%3")
72 .arg(m_account->apiKey())
73 .arg(m_account->userId())
74 .arg(m_character->characterId)));
75 m_reply = m_mgr.get(req);
76 connect(m_reply,SIGNAL(finished()),this,SLOT(infoReady()));
79 void EveSkillTraining::infoReady()
81 if (m_reply->error()) {
82 qDebug() << "Failed! " << m_reply->errorString();
85 qDebug() << "Skill reply";
86 QByteArray reply = m_reply->readAll();
87 qDebug() << "Reply ready";
89 QXmlStreamReader reader(reply);
91 reader.readNextStartElement();
92 if (reader.name() != "eveapi")
94 reader.readNextStartElement();
95 if (reader.name() != "currentTime")
97 reader.readNextStartElement(); // end currentTime element
98 reader.readNextStartElement(); // start result element