2 #include "eveaccount.h"
3 #include <QNetworkAccessManager>
4 #include <QXmlStreamReader>
6 #include <QNetworkAccessManager>
7 #include <QNetworkRequest>
9 static QUrl imageUrl("http://img.eve.is/serv.asp");
11 EveModel::EveModel(QObject *parent) :
17 void EveModel::fetchAccounts()
19 QNetworkRequest fetch(QUrl(QString("http://api.eveonline.com/account/Characters.xml.aspx?apiKey=%1&userID=%2")
22 m_reply = mgr.get(fetch);
23 qDebug() << "Fetch accounts, reply " << m_reply;
24 connect(m_reply,SIGNAL(finished()),this,SLOT(replyReady()));
25 connect(m_reply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(networkError(QNetworkReply::NetworkError)));
28 void EveModel::replyReady()
30 if (m_reply->error()) {
31 qDebug() << "Failed! " << m_reply->errorString();
34 QByteArray reply = m_reply->readAll();
35 qDebug() << "Reply ready";
37 QXmlStreamReader reader(reply);
39 reader.readNextStartElement();
41 qDebug() << "Parse error: " << reader.errorString();
43 qDebug() << "Relement: " << reader.name();
44 if (reader.name() != "eveapi")
46 reader.readNextStartElement();
48 qDebug() << "Parse error: " << reader.errorString();
50 qDebug() << "1 element: " << reader.name();
51 if (reader.name() != "currentTime")
53 reader.readNextStartElement();
54 reader.readNextStartElement();
56 qDebug() << "Parse error: " << reader.errorString();
58 qDebug() << "2 element: " << reader.name();
59 if (reader.name() != "result")
61 reader.readNextStartElement();
62 qDebug() << "Relement: " << reader.name();
63 if (reader.name() != "rowset")
65 reader.readNextStartElement();
66 qDebug() << "3 element: " << reader.name();
67 if (reader.name() == "row")
69 while (reader.name() == "row") {
71 if (!chara.fromXml(reader)) {
72 qDebug() << "Error parsing character data";
75 m_characters.append(chara);
76 reader.readNextStartElement(); // end current row
77 reader.readNextStartElement(); // start next row
79 m_reply->deleteLater();
83 void EveModel::networkError(QNetworkReply::NetworkError error)
85 qDebug() << "Network error " << error;