Fix Camsoda JSON parsing
This commit is contained in:
parent
f11fcf7ca1
commit
4104b5990c
|
@ -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()
|
||||||
|
|
Loading…
Reference in New Issue