forked from j62/ctbrec
1
0
Fork 0

Fix camsoda thumbnail overviews

This commit is contained in:
0xb00bface 2020-10-07 21:02:58 +02:00
parent 48605554f8
commit cd394c8e36
3 changed files with 37 additions and 27 deletions

View File

@ -1,3 +1,11 @@
3.10.1
========================
* Recordings now start immediately after resuming
* Improved Bongacams online state detection
* Fix: Stripchat models with @ in their name were not recorded
* Fix: Camsoda browsing, the "New" tab is gone though. The information
is not available anymore
3.10.0
========================
* New post-processing

View File

@ -30,7 +30,7 @@ public class CamsodaTabProvider extends TabProvider {
public List<Tab> getTabs(Scene scene) {
List<Tab> tabs = new ArrayList<>();
tabs.add(createTab("Online", BASE_URI + "/api/v1/browse/online", m -> true));
tabs.add(createTab("New", BASE_URI + "/api/v1/browse/online", CamsodaModel::isNew));
//tabs.add(createTab("New", BASE_URI + "/api/v1/browse/online", CamsodaModel::isNew));
followedTab.setRecorder(recorder);
followedTab.setScene(scene);
tabs.add(followedTab);

View File

@ -78,43 +78,45 @@ public class CamsodaUpdateService extends PaginatedScheduledService {
JSONArray template = json.getJSONArray("template");
JSONArray results = json.getJSONArray("results");
for (int i = 0; i < results.length(); i++) {
JSONObject result = results.getJSONObject(i);
Object result = results.getJSONObject(i).get("tpl");
CamsodaModel model;
try {
CamsodaModel model;
if (result.has("tpl")) {
JSONArray tpl = result.getJSONArray("tpl");
if (result instanceof JSONObject) {
JSONObject tpl = (JSONObject) result;
String name = tpl.getString(Integer.toString(getTemplateIndex(template, "username")));
model = (CamsodaModel) camsoda.createModel(name);
model.setDescription(tpl.getString(Integer.toString(getTemplateIndex(template, "subject_html"))));
model.setSortOrder(tpl.getFloat(Integer.toString(getTemplateIndex(template, "sort_value"))));
String preview = "https:" + tpl.getString(Integer.toString(getTemplateIndex(template, "thumb")));
model.setPreview(preview);
String displayName = tpl.getString(Integer.toString(getTemplateIndex(template, "display_name")));
model.setDisplayName(displayName.replaceAll("[^a-zA-Z0-9]", ""));
if (model.getDisplayName().isBlank()) {
model.setDisplayName(name);
}
model.setOnlineState(tpl.getString(Integer.toString(getTemplateIndex(template, "stream_name"))).isEmpty() ? OFFLINE : ONLINE);
try {
String statusIndex = Integer.toString(getTemplateIndex(template, "status"));
if (tpl.has(statusIndex)) {
model.setOnlineStateByStatus(tpl.getString(statusIndex));
}
} catch (NoSuchElementException e) {
}
models.add(model);
} else if (result instanceof JSONArray) {
JSONArray tpl = (JSONArray) result;
String name = tpl.getString(getTemplateIndex(template, "username"));
model = (CamsodaModel) camsoda.createModel(name);
model.setDescription(tpl.getString(getTemplateIndex(template, "subject_html")));
model.setSortOrder(tpl.getFloat(getTemplateIndex(template, "sort_value")));
model.setDescription(tpl.getString(getTemplateIndex(template, "subject_html")));
String preview = "https:" + tpl.getString(getTemplateIndex(template, "thumb"));
model.setPreview(preview);
model.setOnlineStateByStatus(tpl.getString(getTemplateIndex(template, "status")));
String displayName = tpl.getString(getTemplateIndex(template, "display_name"));
model.setDisplayName(displayName.replaceAll("[^a-zA-Z0-9]", ""));
if (model.getDisplayName().isBlank()) {
model.setDisplayName(name);
}
model.setNew(result.optBoolean("new"));
model.setOnlineState(tpl.getString(getTemplateIndex(template, "stream_name")).isEmpty() ? OFFLINE : ONLINE);
models.add(model);
} else {
String name = result.getString("username");
model = (CamsodaModel) camsoda.createModel(name);
model.setSortOrder(result.getFloat("sort_value"));
if (result.has("status")) {
model.setOnlineStateByStatus(result.getString("status"));
}
if (result.has("display_name")) {
model.setDisplayName(result.getString("display_name").replaceAll("[^a-zA-Z0-9]", ""));
if (model.getDisplayName().isBlank()) {
model.setDisplayName(name);
}
}
if (result.has("thumb")) {
String previewUrl = "https:" + result.getString("thumb");
model.setPreview(previewUrl);
}
model.setNew(result.optBoolean("new"));
models.add(model);
}
} catch (Exception e) {