na filter

This commit is contained in:
J62 2025-03-15 13:41:00 -07:00
parent 3f4ae44bae
commit bb9e679970
3 changed files with 14 additions and 5 deletions

View File

@ -20,7 +20,7 @@ public class ChaturbateTabProvider extends AbstractTabProvider {
public ChaturbateTabProvider(Chaturbate chaturbate) { public ChaturbateTabProvider(Chaturbate chaturbate) {
super(chaturbate); super(chaturbate);
apiUrl = site.getBaseUrl() + "/api/ts"; apiUrl = site.getBaseUrl() + "/api/ts";
regionNAEnabled = Config.getInstance().getSettings().filterNAcamsOnly; // Load setting from Config regionNAEnabled = Config.getInstance().isFilterNAcamsOnlyEnabled();
this.followedTab = new ChaturbateFollowedTab("Followed", buildUrl("/roomlist/room-list/?enable_recommendations=false&follow=true"), chaturbate); this.followedTab = new ChaturbateFollowedTab("Followed", buildUrl("/roomlist/room-list/?enable_recommendations=false&follow=true"), chaturbate);
} }

View File

@ -162,6 +162,8 @@ public class Config {
String json = new String(fileContent, UTF_8).trim(); String json = new String(fileContent, UTF_8).trim();
json = migrateJson(json); json = migrateJson(json);
settings = Objects.requireNonNull(mapper.readValue(json, Settings.class)); settings = Objects.requireNonNull(mapper.readValue(json, Settings.class));
settings.filterNAcamsOnly = json.has("filterNAcamsOnly") ? json.getBoolean("filterNAcamsOnly") : false;
settings.httpTimeout = Math.max(settings.httpTimeout, 10_000); settings.httpTimeout = Math.max(settings.httpTimeout, 10_000);
if (settings.recordingsDir.endsWith("/")) { if (settings.recordingsDir.endsWith("/")) {
settings.recordingsDir = settings.recordingsDir.substring(0, settings.recordingsDir.length() - 1); settings.recordingsDir = settings.recordingsDir.substring(0, settings.recordingsDir.length() - 1);
@ -221,11 +223,11 @@ public class Config {
} }
} }
} }
private void migrateTo5_3_2(JSONObject json) { private void migrateTo5_3_2(JSONObject json) {
if (json.has("chaturbateUseFlaresolverr") && json.has("flaresolverr")) { if (json.has("chaturbateUseFlaresolverr") && json.has("flaresolverr")) {
var fsr = json.getJSONObject("flaresolverr"); var fsr = json.getJSONObject("flaresolverr");
if (!fsr.has("useForDomains") && json.getBoolean("chaturbateUseFlaresolverr")) { if (!fsr.has("useForDomains") && json.getBoolean("chaturbateUseFlaresolverr")) {
fsr.put("useForDomains", new JSONArray().put("chaturbate.com")); fsr.put("useForDomains", new JSONArray().put("chaturbate.com"));
} }
@ -257,11 +259,13 @@ public class Config {
if (savingDisabled) { if (savingDisabled) {
return; return;
} }
String json = mapper.writeValueAsString(settings); JSONObject json = new JSONObject(mapper.writeValueAsString(settings));
json.put("filterNAcamsOnly", settings.filterNAcamsOnly);
String jsonString = json.toString();
File configFile = new File(configDir, filename); File configFile = new File(configDir, filename);
log.debug("Saving config to {}", configFile.getAbsolutePath()); log.debug("Saving config to {}", configFile.getAbsolutePath());
Files.createDirectories(configDir.toPath()); Files.createDirectories(configDir.toPath());
Files.writeString(configFile.toPath(), json, CREATE, WRITE, TRUNCATE_EXISTING); Files.writeString(configFile.toPath(), jsonString, CREATE, WRITE, TRUNCATE_EXISTING);
} }
public static boolean isServerMode() { public static boolean isServerMode() {
@ -358,4 +362,8 @@ public class Config {
List<String> ignored = Config.getInstance().getSettings().ignoredModels; List<String> ignored = Config.getInstance().getSettings().ignoredModels;
return ignored.contains(model.getUrl()); return ignored.contains(model.getUrl());
} }
public boolean isFilterNAcamsOnlyEnabled() {
return settings.filterNAcamsOnly;
}
} }

View File

@ -127,6 +127,7 @@ public class Settings {
public String mfcPassword = ""; public String mfcPassword = "";
public String mfcUsername = ""; public String mfcUsername = "";
public boolean minimizeToTray = false; public boolean minimizeToTray = false;
public boolean filterNAcamsOnly = false;
@Deprecated @Deprecated
public int minimumLengthInSeconds = 0; public int minimumLengthInSeconds = 0;
public long minimumSpaceLeftInBytes = 0; public long minimumSpaceLeftInBytes = 0;