[fixes #825] Add asset URL extraction for ReleaseInfo

This commit is contained in:
Sibo Van Gool 2022-01-22 13:19:38 +01:00
parent fa5677727e
commit 3a706cfd49

View File

@ -1,9 +1,12 @@
package net.sf.openrocket.communication;
import net.sf.openrocket.util.ArrayList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.json.JsonArray;
import javax.json.JsonObject;
import java.util.List;
/**
* Class containing info about a GitHub release. All the info is stored in a JSON objects, retrieved using the GitHub
@ -60,6 +63,23 @@ public class ReleaseInfo {
return this.obj.get("html_url").toString();
}
/**
* Get the download URLs of the assets from the GitHub release JSON object.
* @return list of asset download URLs (e.g. 'https://github.com/openrocket/openrocket/releases/download/release-15.03/OpenRocket-15.03-installer.exe')
*/
public List<String> getAssetURLs() {
if (this.obj == null) return null;
List<String> assetURLs = new ArrayList<>();
JsonArray assets = this.obj.getJsonArray("assets");
for (int i = 0; i < assets.size(); i++) {
String url = assets.getJsonObject(i).getString("browser_download_url");
assetURLs.add(url);
}
return assetURLs;
}
@Override
public String toString() {
return String.format("releaseTag = %s ; releaseNotes = %s ; releaseURL = %s", getReleaseTag(), getReleaseNotes(),