QList<QUrl> Core::GetPackageURLs (int packageId) const { QList<QUrl> result; QMap<int, QList<QString> > repo2cmpt = Storage_->GetPackageLocations (packageId); PackageShortInfo info = Storage_->GetPackage (packageId); QString pathAddition = QString ("dists/%1/all/"); QString normalized = NormalizePackageName (info.Name_); pathAddition += QString ("%1/%1-%2.tar.gz") .arg (normalized) .arg (info.Versions_.at (0)); Q_FOREACH (int repoId, repo2cmpt.keys ()) { RepoInfo ri = Storage_->GetRepo (repoId); QUrl url = ri.GetUrl (); QString path = url.path (); if (!path.endsWith ('/')) path += '/'; Q_FOREACH (const QString& component, repo2cmpt [repoId]) { QUrl tmp = url; tmp.setPath (path + pathAddition.arg (component)); result << tmp; } }
QList<QUrl> Core::GetPackageURLs (int packageId) const { QList<QUrl> result; const auto& repo2cmpt = Storage_->GetPackageLocations (packageId); PackageShortInfo info; try { info = Storage_->GetPackage (packageId); } catch (const std::exception& e) { qWarning () << Q_FUNC_INFO << "error getting package" << packageId << e.what (); return result; } auto pathAddition = QString ("dists/%1/all/"); const auto& normalized = NormalizePackageName (info.Name_); const auto& version = info.Versions_.at (0); pathAddition += QString ("%1/%1-%2.tar.%3") .arg (normalized) .arg (version) .arg (info.VersionArchivers_.value (version, "gz")); Q_FOREACH (int repoId, repo2cmpt.keys ()) { RepoInfo ri = Storage_->GetRepo (repoId); QUrl url = ri.GetUrl (); QString path = url.path (); if (!path.endsWith ('/')) path += '/'; Q_FOREACH (const QString& component, repo2cmpt [repoId]) { QUrl tmp = url; tmp.setPath (path + pathAddition.arg (component)); result << tmp; } }