Add more category tabs for CamSoda
This commit is contained in:
parent
43d93e3590
commit
2f0ef47acf
|
@ -1,5 +1,6 @@
|
|||
3.10.9
|
||||
========================
|
||||
* Added more category tabs for CamSoda
|
||||
* Added button to the "Recording" tab to go over all model URLs and check, if
|
||||
the account still exists
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import static ctbrec.sites.camsoda.Camsoda.*;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import ctbrec.recorder.Recorder;
|
||||
|
@ -16,6 +17,7 @@ import javafx.scene.control.Tab;
|
|||
|
||||
public class CamsodaTabProvider extends TabProvider {
|
||||
|
||||
private static final String API_URL = BASE_URI + "/api/v1/browse/online";
|
||||
private Camsoda camsoda;
|
||||
private Recorder recorder;
|
||||
CamsodaFollowedTab followedTab;
|
||||
|
@ -29,8 +31,13 @@ public class CamsodaTabProvider extends TabProvider {
|
|||
@Override
|
||||
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("All", API_URL, m -> true));
|
||||
tabs.add(createTab("New", API_URL, CamsodaModel::isNew));
|
||||
tabs.add(createTab("Female", API_URL, m -> Objects.equals("f", m.getGender())));
|
||||
tabs.add(createTab("Male", API_URL, m -> Objects.equals("m", m.getGender())));
|
||||
tabs.add(createTab("Couples", API_URL, m -> Objects.equals("c", m.getGender())));
|
||||
tabs.add(createTab("Trans", API_URL, m -> Objects.equals("t", m.getGender())));
|
||||
//tabs.add(createTab("#petite", BASE_URI + "/api/v1/browse/tag-petite", m -> true));
|
||||
followedTab.setRecorder(recorder);
|
||||
followedTab.setScene(scene);
|
||||
tabs.add(followedTab);
|
||||
|
|
|
@ -74,60 +74,58 @@ public class CamsodaUpdateService extends PaginatedScheduledService {
|
|||
if (response.isSuccessful()) {
|
||||
String body = response.body().string();
|
||||
JSONObject json = new JSONObject(body);
|
||||
if (json.optBoolean("status")) {
|
||||
JSONArray template = json.getJSONArray("template");
|
||||
JSONArray results = json.getJSONArray("results");
|
||||
for (int i = 0; i < results.length(); i++) {
|
||||
Object result = results.getJSONObject(i).get("tpl");
|
||||
CamsodaModel model;
|
||||
try {
|
||||
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.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);
|
||||
}
|
||||
models.add(model);
|
||||
JSONArray template = json.getJSONArray("template");
|
||||
JSONArray results = json.getJSONArray("results");
|
||||
for (int i = 0; i < results.length(); i++) {
|
||||
JSONObject result = results.getJSONObject(i);
|
||||
Object templateObject = result.get("tpl");
|
||||
CamsodaModel model;
|
||||
try {
|
||||
if (templateObject instanceof JSONObject) {
|
||||
JSONObject tpl = (JSONObject) templateObject;
|
||||
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"))));
|
||||
model.setNew(result.optBoolean("new"));
|
||||
model.setGender(tpl.getString(Integer.toString(getTemplateIndex(template, "gender"))));
|
||||
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);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Couldn't parse one of the models: {}", result, e);
|
||||
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 (templateObject instanceof JSONArray) {
|
||||
JSONArray tpl = (JSONArray) templateObject;
|
||||
String name = tpl.getString(getTemplateIndex(template, "username"));
|
||||
model = (CamsodaModel) camsoda.createModel(name);
|
||||
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);
|
||||
}
|
||||
models.add(model);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Couldn't parse one of the models: {}", result, e);
|
||||
}
|
||||
return models;
|
||||
} else {
|
||||
LOG.debug("Response was not successful: {}", json);
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return models;
|
||||
} else {
|
||||
throw new HttpException(response.code(), response.message());
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@ public class CamsodaModel extends AbstractModel {
|
|||
private static final Logger LOG = LoggerFactory.getLogger(CamsodaModel.class);
|
||||
private transient List<StreamSource> streamSources = null;
|
||||
private transient boolean isNew;
|
||||
private transient String gender;
|
||||
|
||||
private float sortOrder = 0;
|
||||
private Random random = new Random();
|
||||
|
@ -344,4 +345,12 @@ public class CamsodaModel extends AbstractModel {
|
|||
public void setNew(boolean isNew) {
|
||||
this.isNew = isNew;
|
||||
}
|
||||
|
||||
public String getGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public void setGender(String gender) {
|
||||
this.gender = gender;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue