Fix Camsoda JSON parsing

This commit is contained in:
0xboobface 2019-06-01 15:32:19 +02:00
parent f11fcf7ca1
commit 4104b5990c
1 changed files with 39 additions and 39 deletions

View File

@ -62,48 +62,48 @@ public class CamsodaUpdateService extends PaginatedScheduledService {
JSONArray results = json.getJSONArray("results"); JSONArray results = json.getJSONArray("results");
for (int i = 0; i < results.length(); i++) { for (int i = 0; i < results.length(); i++) {
JSONObject result = results.getJSONObject(i); JSONObject result = results.getJSONObject(i);
if(result.has("tpl")) { try {
JSONArray tpl = result.getJSONArray("tpl"); if(result.has("tpl")) {
String name = tpl.getString(getTemplateIndex(template, "username")); JSONArray tpl = result.getJSONArray("tpl");
String displayName = tpl.getString(getTemplateIndex(template, "display_name")); String name = tpl.getString(getTemplateIndex(template, "username"));
// int connections = tpl.getInt(2); String displayName = tpl.getString(getTemplateIndex(template, "display_name"));
String streamName = tpl.getString(getTemplateIndex(template, "stream_name")); // int connections = tpl.getInt(2);
String tsize = tpl.getString(getTemplateIndex(template, "tsize")); String streamName = tpl.getString(getTemplateIndex(template, "stream_name"));
String serverPrefix = tpl.getString(getTemplateIndex(template, "server_prefix")); CamsodaModel model = (CamsodaModel) camsoda.createModel(name);
CamsodaModel model = (CamsodaModel) camsoda.createModel(name); model.setDescription(tpl.getString(getTemplateIndex(template, "subject_html")));
model.setDescription(tpl.getString(getTemplateIndex(template, "subject_html"))); model.setSortOrder(tpl.getFloat(getTemplateIndex(template, "sort_value")));
model.setSortOrder(tpl.getFloat(getTemplateIndex(template, "sort_value"))); String preview = "https:" + tpl.getString(getTemplateIndex(template, "thumb"));
long unixtime = System.currentTimeMillis() / 1000; model.setPreview(preview);
String preview = "https://thumbs-orig.camsoda.com/thumbs/" JSONArray edgeServers = tpl.getJSONArray(getTemplateIndex(template, "edge_servers"));
+ streamName + '/' + serverPrefix + '/' + tsize + '/' + unixtime + '/' + name + ".jpg?cb=" + unixtime;
model.setPreview(preview);
JSONArray edgeServers = tpl.getJSONArray(getTemplateIndex(template, "edge_servers"));
model.setStreamUrl("https://" + edgeServers.getString(0) + "/cam/mp4:" + streamName + "_h264_aac_480p/playlist.m3u8");
model.setDisplayName(displayName);
models.add(model);
} else {
String name = result.getString("username");
CamsodaModel model = (CamsodaModel) camsoda.createModel(name);
String streamName = result.getString("stream_name");
model.setSortOrder(result.getFloat("sort_value"));
models.add(model);
if(result.has("status")) {
model.setOnlineStateByStatus(result.getString("status"));
}
if(result.has("display_name")) {
model.setDisplayName(result.getString("display_name"));
}
if(result.has("edge_servers")) {
JSONArray edgeServers = result.getJSONArray("edge_servers");
model.setStreamUrl("https://" + edgeServers.getString(0) + "/cam/mp4:" + streamName + "_h264_aac_480p/playlist.m3u8"); model.setStreamUrl("https://" + edgeServers.getString(0) + "/cam/mp4:" + streamName + "_h264_aac_480p/playlist.m3u8");
} model.setDisplayName(displayName);
models.add(model);
} else {
String name = result.getString("username");
CamsodaModel model = (CamsodaModel) camsoda.createModel(name);
String streamName = result.getString("stream_name");
model.setSortOrder(result.getFloat("sort_value"));
models.add(model);
if(result.has("status")) {
model.setOnlineStateByStatus(result.getString("status"));
}
if(result.has("thumb")) { if(result.has("display_name")) {
String previewUrl = "https:" + result.getString("thumb"); model.setDisplayName(result.getString("display_name"));
model.setPreview(previewUrl); }
if(result.has("edge_servers")) {
JSONArray edgeServers = result.getJSONArray("edge_servers");
model.setStreamUrl("https://" + edgeServers.getString(0) + "/cam/mp4:" + streamName + "_h264_aac_480p/playlist.m3u8");
}
if(result.has("thumb")) {
String previewUrl = "https:" + result.getString("thumb");
model.setPreview(previewUrl);
}
} }
} catch (Exception e) {
LOG.warn("Couldn't parse one of the models: {}", result.toString(), e);
} }
} }
return models.stream() return models.stream()