1 // Copyright (C) 2010 Jaakko Kyro <jkyro@korjaussarja.net>
2 // This file is licenced under GPL, see COPYING
3 // for full licence information
5 #include "eveaccount.h"
6 #include <QNetworkAccessManager>
7 #include <QXmlStreamReader>
9 #include <QNetworkAccessManager>
10 #include <QNetworkRequest>
12 static QUrl imageUrl("http://img.eve.is/serv.asp");
14 EveModel::EveModel(QObject *parent) :
20 void EveModel::fetchAccounts()
22 QNetworkRequest fetch(QUrl(QString("http://api.eveonline.com/account/Characters.xml.aspx?apiKey=%1&userID=%2")
25 m_reply = mgr.get(fetch);
26 qDebug() << "Fetch accounts, reply " << m_reply;
27 connect(m_reply,SIGNAL(finished()),this,SLOT(replyReady()));
28 connect(m_reply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(networkError(QNetworkReply::NetworkError)));
31 void EveModel::replyReady()
33 if (m_reply->error()) {
34 qDebug() << "Failed! " << m_reply->errorString();
37 QByteArray reply = m_reply->readAll();
38 qDebug() << "Reply ready";
40 QXmlStreamReader reader(reply);
42 reader.readNextStartElement();
44 qDebug() << "Parse error: " << reader.errorString();
46 qDebug() << "Relement: " << reader.name();
47 if (reader.name() != "eveapi")
49 reader.readNextStartElement();
51 qDebug() << "Parse error: " << reader.errorString();
53 qDebug() << "1 element: " << reader.name();
54 if (reader.name() != "currentTime")
56 reader.readNextStartElement();
57 reader.readNextStartElement();
59 qDebug() << "Parse error: " << reader.errorString();
61 qDebug() << "2 element: " << reader.name();
62 if (reader.name() != "result")
64 reader.readNextStartElement();
65 qDebug() << "Relement: " << reader.name();
66 if (reader.name() != "rowset")
68 reader.readNextStartElement();
69 qDebug() << "3 element: " << reader.name();
70 if (reader.name() == "row")
72 while (reader.name() == "row") {
74 if (!chara.fromXml(reader)) {
75 qDebug() << "Error parsing character data";
78 m_characters.append(chara);
79 reader.readNextStartElement(); // end current row
80 reader.readNextStartElement(); // start next row
82 m_reply->deleteLater();
86 void EveModel::networkError(QNetworkReply::NetworkError error)
88 qDebug() << "Network error " << error;