| 29 | } |
| 30 | |
| 31 | void PackFetchTask::fetchPrivate(const QStringList & toFetch) |
| 32 | { |
| 33 | QString privatePackBaseUrl = BuildConfig.LEGACY_FTB_CDN_BASE_URL + "static/%1.xml"; |
| 34 | |
| 35 | for (auto &packCode: toFetch) |
| 36 | { |
| 37 | QByteArray *data = new QByteArray(); |
| 38 | NetJob *job = new NetJob("Fetching private pack", m_network); |
| 39 | job->addNetAction(Net::Download::makeByteArray(privatePackBaseUrl.arg(packCode), data)); |
| 40 | |
| 41 | QObject::connect(job, &NetJob::succeeded, this, [this, job, data, packCode] |
| 42 | { |
| 43 | ModpackList packs; |
| 44 | parseAndAddPacks(*data, PackType::Private, packs); |
| 45 | foreach(Modpack currentPack, packs) |
| 46 | { |
| 47 | currentPack.packCode = packCode; |
| 48 | emit privateFileDownloadFinished(currentPack); |
| 49 | } |
| 50 | |
| 51 | job->deleteLater(); |
| 52 | |
| 53 | data->clear(); |
| 54 | delete data; |
| 55 | }); |
| 56 | |
| 57 | QObject::connect(job, &NetJob::failed, this, [this, job, packCode, data](QString reason) |
| 58 | { |
| 59 | emit privateFileDownloadFailed(reason, packCode); |
| 60 | job->deleteLater(); |
| 61 | |
| 62 | data->clear(); |
| 63 | delete data; |
| 64 | }); |
| 65 | |
| 66 | job->start(); |
| 67 | } |
| 68 | } |
| 69 | |
| 70 | void PackFetchTask::fileDownloadFinished() |
| 71 | { |
no test coverage detected