23 #include "updaterinfoparser.h"
26 #include "updater/autoupdater.h"
27 #include "updater/updatepackage.h"
29 #include <QJsonDocument>
31 DClass<UpdaterInfoParser>
34 QList<UpdatePackage> packages;
36 bool hasMainProgramName(
const QVariantMap &metaData)
const
48 UpdaterInfoParser::~UpdaterInfoParser()
52 const QList<UpdatePackage> &UpdaterInfoParser::packages()
const
60 auto var = QJsonDocument::fromJson(json).toVariant();
63 QVariantMap metaData = var.toMap();
64 if (d->hasMainProgramName(metaData))
66 for (
const QString &package : metaData.keys())
68 int result = parsePackageNode(package, metaData[package].toMap());
69 if (result != AutoUpdater::EC_Ok)
84 return AutoUpdater::EC_Ok;
87 int UpdaterInfoParser::parsePackageNode(
const QString &packageName,
const QVariantMap &map)
90 package.
name = packageName;
92 if (map.contains(
"revision"))
94 package.
revision = map[
"revision"].toString();
98 gLog << tr(
"Missing update revision info for package %1.").arg(packageName);
102 if (map.contains(
"display-version"))
111 if (map.contains(
"display-name"))
113 package.
displayName = map[
"display-name"].toString();
120 if (map.contains(
"URL"))
122 QString strUrl = map[
"URL"].toString();
126 gLog << tr(
"Invalid update download URL for package %1: %2")
127 .arg(packageName, strUrl);
133 gLog << tr(
"Missing update download URL for package %1.").arg(packageName);
137 if (map.contains(
"URL-script"))
139 QString strUrl = map[
"URL-script"].toString();
143 gLog << tr(
"Invalid update script download URL for package %1, %2")
144 .arg(packageName, strUrl);
153 d->packages << package;
154 return AutoUpdater::EC_Ok;