diff --git a/companion/src/updates/updateinterface.cpp b/companion/src/updates/updateinterface.cpp index e37aa2426..0a46cf083 100644 --- a/companion/src/updates/updateinterface.cpp +++ b/companion/src/updates/updateinterface.cpp @@ -666,6 +666,14 @@ void UpdateInterface::downloadMetaData(const MetaDataType mdt, const QString & u download(DDT_MetaData, mdt, url, GH_ACCEPT_HEADER_METADATA, QString()); } +bool UpdateInterface::downloadAssetToBuffer(const int assetId) +{ + //progressMessage(tr("Download asset %1").arg(assetId)); + assets->setId(assetId); + download(DDT_Content, 0, assets->urlAsset(), GH_ACCEPT_HEADER_BINARY, QString()); + return downloadSuccess; +} + bool UpdateInterface::downloadTextFileToBuffer(const QString & path) { //progressMessage(tr("Download file %1").arg(path)); diff --git a/companion/src/updates/updateinterface.h b/companion/src/updates/updateinterface.h index 8e5e03a18..8fd8cbc41 100644 --- a/companion/src/updates/updateinterface.h +++ b/companion/src/updates/updateinterface.h @@ -189,6 +189,7 @@ class UpdateInterface : public QWidget bool copyFiles(); bool saveReleaseSettings(); + bool downloadAssetToBuffer(const int assetId); bool downloadTextFileToBuffer(const QString & path); void downloadFileToBuffer(const QString & url); bool convertDownloadToJson(QJsonDocument * json); diff --git a/companion/src/updates/updatesounds.cpp b/companion/src/updates/updatesounds.cpp index 1f50d0e9c..6e81cfcab 100644 --- a/companion/src/updates/updatesounds.cpp +++ b/companion/src/updates/updatesounds.cpp @@ -48,9 +48,20 @@ bool UpdateSounds::flagAssets() { progressMessage(tr("Flagging assets")); - const QString mappingfile = "sounds.json"; + QString pattern("sounds.json"); + assets->setFilterPattern(pattern); - if (!downloadTextFileToBuffer(mappingfile)) { + if (assets->count() < 0) { + reportProgress(tr("Asset not found in release '%1' using filter pattern '%2'").arg(releases->name().arg(pattern)), QtCriticalMsg); + return false; + } + else if (assets->count() > 1) { + reportProgress(tr("%1 assets found when %2 expected in release '%3' using filter pattern '%4'") + .arg(assets->count()).arg(1).arg(releases->name().arg(pattern)), QtCriticalMsg); + return false; + } + + if (!downloadAssetToBuffer(assets->getSetId(0))) { return false; } @@ -107,7 +118,7 @@ bool UpdateSounds::flagAssets() delete json; if (langPacks->rowCount() < 1) { - reportProgress(tr("Language %1 not listed in %2").arg(runParams->data.language).arg(mappingfile), QtCriticalMsg); + reportProgress(tr("Language %1 not listed in %2").arg(runParams->data.language).arg(pattern), QtCriticalMsg); return false; }