23 #include "updaterinfoparser.h"
27 #include "updater/autoupdater.h"
28 #include "updater/updatepackage.h"
30 DClass<UpdaterInfoParser>
33 QList<UpdatePackage> packages;
35 bool hasMainProgramName(
const QVariantMap &metaData)
const
47 UpdaterInfoParser::~UpdaterInfoParser()
51 const QList<UpdatePackage> &UpdaterInfoParser::packages()
const
62 QVariantMap metaData = var.toMap();
63 if (d->hasMainProgramName(metaData))
65 for (
const QString &package : metaData.keys())
67 int result = parsePackageNode(package, metaData[package].toMap());
68 if (result != AutoUpdater::EC_Ok)
83 return AutoUpdater::EC_Ok;
86 int UpdaterInfoParser::parsePackageNode(
const QString &packageName,
const QVariantMap &map)
89 package.
name = packageName;
91 if (map.contains(
"revision"))
93 package.
revision = map[
"revision"].toString();
97 gLog << tr(
"Missing update revision info for package %1.").arg(packageName);
101 if (map.contains(
"display-version"))
110 if (map.contains(
"display-name"))
112 package.
displayName = map[
"display-name"].toString();
119 if (map.contains(
"URL"))
121 QString strUrl = map[
"URL"].toString();
125 gLog << tr(
"Invalid update download URL for package %1: %2")
126 .arg(packageName, strUrl);
132 gLog << tr(
"Missing update download URL for package %1.").arg(packageName);
136 if (map.contains(
"URL-script"))
138 QString strUrl = map[
"URL-script"].toString();
142 gLog << tr(
"Invalid update script download URL for package %1, %2")
143 .arg(packageName, strUrl);
152 d->packages << package;
153 return AutoUpdater::EC_Ok;