From 19db99c4c242009d465f0b67f7d31450d9896f0a Mon Sep 17 00:00:00 2001 From: elecpower Date: Fri, 26 Aug 2022 13:20:00 +1000 Subject: [PATCH] Use sounds.json release asset for available languages and variants --- companion/src/updates/updateinterface.cpp | 8 ++++++++ companion/src/updates/updateinterface.h | 1 + companion/src/updates/updatesounds.cpp | 17 ++++++++++++++--- 3 files changed, 23 insertions(+), 3 deletions(-) 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; }