From 2f1ef7854a71db240de7813d29f448b9be1f7069 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Thu, 16 Nov 2023 21:26:03 +0100 Subject: [PATCH] Add Stripchat tags thx to @winkru --- .../AbstractStripchatUpdateService.java | 45 +++++++++++++++++++ .../StripchatFollowedUpdateService.java | 11 ----- .../stripchat/StripchatUpdateService.java | 7 ++- 3 files changed, 51 insertions(+), 12 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/AbstractStripchatUpdateService.java b/client/src/main/java/ctbrec/ui/sites/stripchat/AbstractStripchatUpdateService.java index d9537b0f..91ed7173 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/AbstractStripchatUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/AbstractStripchatUpdateService.java @@ -5,8 +5,12 @@ import ctbrec.ui.tabs.PaginatedScheduledService; import org.json.JSONObject; import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; public abstract class AbstractStripchatUpdateService extends PaginatedScheduledService { + private static final Random RNG = new Random(); protected String getPreviewUrl(JSONObject model) { try { @@ -21,4 +25,45 @@ public abstract class AbstractStripchatUpdateService extends PaginatedScheduledS return model.optString("previewUrlThumbBig"); } } + + protected List createTags(JSONObject model) { + List tags = new ArrayList<>(); + if (model.optBoolean("isHd")) { + tags.add("HD"); + } + if (model.optBoolean("isVr")) { + tags.add("VR"); + } + if (model.optBoolean("isLovense")) { + tags.add("lovense"); + } + if (model.optBoolean("isNew")) { + tags.add("new"); + } + if (model.optBoolean("isMobile")) { + tags.add("mobile"); + } + if (model.optBoolean("isNonNude")) { + tags.add("non-nude"); + } + if (StringUtil.isNotBlank(model.optString("country"))) { + tags.add(model.getString("country").toUpperCase()); + } + if (StringUtil.isNotBlank(model.optString("broadcastGender"))) { + tags.add(model.getString("broadcastGender")); + } + if (StringUtil.isNotBlank(model.optString("status"))) { + tags.add(model.getString("status")); + } + return tags; + } + + protected String getUniq() { + String dict = "0123456789abcdefghijklmnopqarstvwxyz"; + char[] text = new char[16]; + for (int i = 0; i < 16; i++) { + text[i] = dict.charAt(RNG.nextInt(dict.length())); + } + return new String(text); + } } diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatFollowedUpdateService.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatFollowedUpdateService.java index 70ae12aa..62ad45dc 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatFollowedUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatFollowedUpdateService.java @@ -22,7 +22,6 @@ import static ctbrec.io.HttpConstants.*; @Slf4j public class StripchatFollowedUpdateService extends AbstractStripchatUpdateService { - private static final Random RNG = new Random(); private static final int MODELS_PER_PAGE = 60; private final Stripchat stripchat; private final boolean loginRequired; @@ -105,14 +104,4 @@ public class StripchatFollowedUpdateService extends AbstractStripchatUpdateServi url = stripchat.getBaseUrl() + "/api/front/models/favorites/offline?sortBy=lastAdded"; } } - - private String getUniq() { - String dict = "0123456789abcdefghijklmnopqarstvwxyz"; - char[] text = new char[16]; - for (int i = 0; i < 16; i++) { - text[i] = dict.charAt(RNG.nextInt(dict.length())); - } - return new String(text); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatUpdateService.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatUpdateService.java index 6334a5bd..e119f2a9 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatUpdateService.java @@ -79,10 +79,15 @@ public class StripchatUpdateService extends AbstractStripchatUpdateService { var jsonModel = jsonModels.getJSONObject(i); try { StripchatModel model = stripchat.createModel(jsonModel.getString("username")); - model.setDescription(""); model.setPreview(getPreviewUrl(jsonModel)); model.setDisplayName(model.getName()); model.setOnlineState(Model.State.ONLINE); + model.setTags(createTags(jsonModel)); + StringBuilder description = new StringBuilder(); + for (String tag : model.getTags()) { + description.append("#").append(tag).append(" "); + } + model.setDescription(description.toString()); models.add(model); } catch (Exception e) { LOG.warn("Couldn't parse one of the models: {}", jsonModel, e);