]> git.sur5r.net Git - minitube/blob - lib/updater/src/impl/simplexmlparser.cpp
New upstream version 3.5
[minitube] / lib / updater / src / impl / simplexmlparser.cpp
1 #include "simplexmlparser.h"
2
3 #include "defaultupdater.h"
4
5 namespace updater {
6
7 SimpleXmlParser::SimpleXmlParser() {}
8
9 void SimpleXmlParser::parse(const QByteArray &bytes) {
10     error = false;
11     errorMessage.clear();
12
13     QXmlStreamReader reader;
14     reader.addData(bytes);
15     while (!reader.atEnd()) {
16         reader.readNext();
17         if (reader.isStartElement()) {
18             if (reader.name() == rootElementName) {
19                 while (!reader.atEnd()) {
20                     reader.readNext();
21                     if (reader.isStartElement() && reader.name() == versionElementName) {
22                         updater->setVersion(reader.readElementText());
23                     } else if (reader.isStartElement() && reader.name() == urlElementName) {
24                         QString url = reader.readElementText();
25                         for (const auto &arg : qAsConst(urlArguments)) {
26                             url = url.arg(arg);
27                         }
28                         updater->setDownloadUrl(url);
29                     }
30                 }
31             }
32         }
33     }
34     if (reader.hasError()) {
35         error = true;
36         errorMessage = reader.errorString();
37     }
38 }
39
40 } // namespace updater