ctbrec/common/src/main/java/ctbrec/Settings.java

203 lines
8.3 KiB
Java

package ctbrec;
import java.io.File;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import ctbrec.event.EventHandlerConfiguration;
import ctbrec.recorder.postprocessing.PostProcessor;
public class Settings {
public enum DirectoryStructure {
FLAT("all recordings in one directory"),
ONE_PER_MODEL("one directory for each model"),
ONE_PER_RECORDING("one directory for each recording");
private final String description;
DirectoryStructure(String description) {
this.description = description;
}
@Override
public String toString() {
return description;
}
}
public enum ProxyType {
DIRECT,
HTTP,
SOCKS4,
SOCKS5
}
public enum SplitStrategy {
DONT,
TIME,
SIZE,
TIME_OR_SIZE
}
public String amateurTvUsername = "";
public String amateurTvPassword = "";
public String bongacamsBaseUrl = "https://bongacams.com";
public String bongaPassword = "";
public String bongaUsername = "";
public String cam4Password = "";
public String cam4Username = "";
public String camsodaPassword = "";
public String camsodaUsername = "";
public String chaturbatePassword = "";
public String chaturbateUsername = "";
public String chaturbateBaseUrl = "https://chaturbate.com";
public int chaturbateMsBetweenRequests = 1000;
public String cherryTvPassword = "";
public String cherryTvUsername = "";
public boolean chooseStreamQuality = false;
public String colorAccent = "#FFFFFF";
public String colorBase = "#FFFFFF";
public int concurrentRecordings = 0;
public boolean confirmationForDangerousActions = false;
public String contactsheetTimestampLook = "font=sans-serif:fontcolor=white:fontsize=60:box=1:boxcolor=black@0.5:boxborderw=5";
public int defaultPriority = 50;
public boolean determineResolution = false;
public List<String> disabledSites = new ArrayList<>();
public String downloadFilename = "${modelSanitizedName}-${localDateTime}";
public List<EventHandlerConfiguration> eventHandlers = new ArrayList<>();
public boolean eventsSuspended = false;
public boolean fastScrollSpeed = true;
public String fc2livePassword = "";
public String fc2liveUsername = "";
public String ffmpegMergedDownloadArgs = "-c:v copy -c:a copy -movflags faststart -y -f mpegts";
public String ffmpegFileSuffix = "ts";
public String flirt4freePassword;
public String flirt4freeUsername;
public String fontFamily = "Sans-Serif";
public int fontSize = 14;
public String hlsdlExecutable = "hlsdl";
public int httpPort = 8080;
public int httpSecurePort = 8443;
public String httpServer = "localhost";
public int httpTimeout = 10000;
public String httpUserAgent = "Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0";
public String httpUserAgentMobile = "Mozilla/5.0 (Android 9.0; Mobile; rv:82.0) Gecko/82.0 Firefox/82.0";
public byte[] key = null;
public List<String> ignoredModels = new ArrayList<>();
public String lastDownloadDir = "";
public String livejasminBaseUrl = "https://www.livejasmin.com";
public boolean livejasminBetaAcknowledged = false;
public String livejasminPassword = "";
public String livejasminUsername = "";
public boolean livePreviews = false;
public boolean localRecording = true;
public boolean logFFmpegOutput = false;
public boolean loghlsdlOutput = false;
public boolean logMissedSegments = false;
public int minimumResolution = 0;
public int maximumResolution = 8640;
public int maximumResolutionPlayer = 0;
public String mediaPlayer = "/usr/bin/mpv";
public String mediaPlayerParams = "";
public String mfcBaseUrl = "https://www.myfreecams.com";
public List<String> mfcDisabledModelsTableColumns = new ArrayList<>();
public String[] mfcModelsTableColumnIds = new String[0];
public double[] mfcModelsTableColumnWidths = new double[0];
public String mfcModelsTableFilter = "";
public String mfcModelsTableSortColumn = "";
public String mfcModelsTableSortType = "";
public String mfcPassword = "";
public String mfcUsername = "";
public boolean minimizeToTray = false;
@Deprecated
public int minimumLengthInSeconds = 0;
public long minimumSpaceLeftInBytes = 0;
public List<Model> models = new ArrayList<>();
public Set<ModelGroup> modelGroups = new HashSet<>();
public Map<String, String> modelNotes = new HashMap<>();
public Map<String, String> modelPortraits = new HashMap<>();
@Deprecated
public List<Model> modelsIgnored = new ArrayList<>();
public boolean monitorClipboard = false;
public int onlineCheckIntervalInSecs = 60;
public boolean onlineCheckSkipsPausedModels = false;
public int overviewUpdateIntervalInSecs = 10;
@Deprecated
public String password = "";
@Deprecated
public String postProcessing = "";
public int playlistRequestTimeout = 2000;
public int postProcessingThreads = 2;
public List<PostProcessor> postProcessors = new ArrayList<>();
public String proxyHost;
public String proxyPassword;
public String proxyPort;
public ProxyType proxyType = ProxyType.DIRECT;
public String proxyUser;
public boolean recentlyWatched = true;
public List<String> recordLaterTableColumnOrder = new ArrayList<>();
public Map<String, Boolean> recordLaterTableColumnVisibility = new HashMap<>();
public Map<String, Double> recordLaterTableColumnWidth = new HashMap<>();
public String recordLaterTableSortColumn = "";
public String recordLaterTableSortType = "";
public List<String> recordedModelsTableColumnOrder = new ArrayList<>();
public Map<String, Boolean> recordedModelsTableColumnVisibility = new HashMap<>();
public Map<String, Double> recordedModelsTableColumnWidth = new HashMap<>();
public String recordedModelsTableSortColumn = "";
public String recordedModelsTableSortType = "";
public List<String> recordingsTableColumnOrder = new ArrayList<>();
public Map<String, Boolean> recordingsTableColumnVisibility = new HashMap<>();
public Map<String, Double> recordingsTableColumnWidth = new HashMap<>();
public String recordingsTableSortColumn = "";
public String recordingsTableSortType = "";
public String recordingsDir = System.getProperty("user.home") + File.separator + "ctbrec";
public DirectoryStructure recordingsDirStructure = DirectoryStructure.FLAT;
public List<Model> recordLater = new ArrayList<>();
public boolean recordSingleFile = false;
public boolean removeRecordingAfterPostProcessing = false;
public boolean requireAuthentication = false;
public String servletContext = "";
public boolean showGridLinesInTables = true;
public boolean showPlayerStarting = false;
public String showupUsername = "";
public String showupPassword = "";
public boolean singlePlayer = true;
@Deprecated
public int splitRecordings = 0;
public SplitStrategy splitStrategy = SplitStrategy.DONT;
public int splitRecordingsAfterSecs = 0;
public long splitRecordingsBiggerThanBytes = 0;
public String startTab = "Settings";
public String streamatePassword = "";
public String streamateUsername = "";
public String stripchatUsername = "";
public String stripchatPassword = "";
public boolean stripchatUseXhamster = false;
public List<String> tabOrder = new ArrayList<>();
public LocalTime timeoutRecordingStartingAt = LocalTime.of(0, 0);
public LocalTime timeoutRecordingEndingAt = LocalTime.of(0, 0);
public boolean totalModelCountInTitle = false;
public boolean transportLayerSecurity = true;
public int thumbWidth = 180;
public boolean updateThumbnails = true;
public boolean useHlsdl = false;
@Deprecated
public String username = "";
public int windowHeight = 800;
public boolean windowMaximized = false;
public int windowWidth = 1340;
public int windowX;
public int windowY;
public boolean webinterface = false;
public String webinterfaceUsername = "ctbrec";
public String webinterfacePassword = "sucks";
public String xlovecamUsername = "";
public String xlovecamPassword = "";
}