Add Stripchat tags thx to @winkru

This commit is contained in:
0xb00bface 2023-11-16 21:26:03 +01:00
parent 41d32ad681
commit 2f1ef7854a
3 changed files with 51 additions and 12 deletions

View File

@ -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<String> createTags(JSONObject model) {
List<String> 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);
}
}

View File

@ -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);
}
}

View File

@ -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);