forked from j62/ctbrec
1
0
Fork 0

Added setting to delete orphaned recording metadata (switched off by default)

This commit is contained in:
0xb00bface 2023-12-30 13:23:36 +01:00
parent 3caefd6bb4
commit 932974137c
3 changed files with 18 additions and 8 deletions

View File

@ -131,6 +131,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
private PostProcessingStepPanel postProcessingStepPanel; private PostProcessingStepPanel postProcessingStepPanel;
private SimpleStringProperty filterBlacklist; private SimpleStringProperty filterBlacklist;
private SimpleStringProperty filterWhitelist; private SimpleStringProperty filterWhitelist;
private SimpleBooleanProperty deleteOrphanedRecordingMetadata;
public SettingsTab(List<Site> sites, Recorder recorder) { public SettingsTab(List<Site> sites, Recorder recorder) {
this.sites = sites; this.sites = sites;
@ -211,6 +212,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
checkForUpdates = new SimpleBooleanProperty(null, "checkForUpdates", settings.checkForUpdates); checkForUpdates = new SimpleBooleanProperty(null, "checkForUpdates", settings.checkForUpdates);
filterBlacklist = new SimpleStringProperty(null, "filterBlacklist", settings.filterBlacklist); filterBlacklist = new SimpleStringProperty(null, "filterBlacklist", settings.filterBlacklist);
filterWhitelist = new SimpleStringProperty(null, "filterWhitelist", settings.filterWhitelist); filterWhitelist = new SimpleStringProperty(null, "filterWhitelist", settings.filterWhitelist);
deleteOrphanedRecordingMetadata = new SimpleBooleanProperty(null, "deleteOrphanedRecordingMetadata", settings.deleteOrphanedRecordingMetadata);
} }
private void createGui() { private void createGui() {
@ -281,7 +283,8 @@ public class SettingsTab extends Tab implements TabSelectionListener {
Setting.of("FFmpeg parameters", ffmpegParameters, "FFmpeg parameters to use when merging stream segments"), Setting.of("FFmpeg parameters", ffmpegParameters, "FFmpeg parameters to use when merging stream segments"),
Setting.of("File Extension", fileExtension, "File extension to use for recordings"), Setting.of("File Extension", fileExtension, "File extension to use for recordings"),
Setting.of("Check online state every (seconds)", onlineCheckIntervalInSecs, "Check every x seconds, if a model came online"), Setting.of("Check online state every (seconds)", onlineCheckIntervalInSecs, "Check every x seconds, if a model came online"),
Setting.of("Skip online check for paused models", onlineCheckSkipsPausedModels, "Skip online check for paused models")), Setting.of("Skip online check for paused models", onlineCheckSkipsPausedModels, "Skip online check for paused models"),
Setting.of("Delete orphaned recording metadata", deleteOrphanedRecordingMetadata, "Delete recordings for which the video files are missing on start")),
Group.of("Timeout", Group.of("Timeout",
Setting.of("Don't record from", timeoutRecordingStartingAt), Setting.of("Don't record from", timeoutRecordingStartingAt),
Setting.of("Until", timeoutRecordingEndingAt) Setting.of("Until", timeoutRecordingEndingAt)
@ -301,13 +304,13 @@ public class SettingsTab extends Tab implements TabSelectionListener {
Setting.of("Steps", postProcessingStepPanel), Setting.of("Steps", postProcessingStepPanel),
Setting.of("", createHelpButton("Post-Processing Help", "http://localhost:5689/docs/PostProcessing.md")), Setting.of("", createHelpButton("Post-Processing Help", "http://localhost:5689/docs/PostProcessing.md")),
Setting.of("", createVariablePlayGroundButton()))), Setting.of("", createVariablePlayGroundButton()))),
Category.of("Events & Actions", new ActionSettingsPanel(recorder)), Category.of("Events & Actions", new ActionSettingsPanel(recorder)),
Category.of("Filtering", Category.of("Filtering",
Group.of("Ignore List", Group.of("Ignore List",
Setting.of("", ignoreList)), Setting.of("", ignoreList)),
Group.of("Text Filters", Group.of("Text Filters",
Setting.of("Blacklist", filterBlacklist, "Default list of blacklist filters for site views, space seperated"), Setting.of("Blacklist", filterBlacklist, "Default list of blacklist filters for site views, space seperated"),
Setting.of("Whitelist", filterWhitelist, "Default list of whitelist filters for site views, space seperated"))), Category.of("Sites", siteCategories.toArray(new Category[0])), Setting.of("Whitelist", filterWhitelist, "Default list of whitelist filters for site views, space seperated"))), Category.of("Sites", siteCategories.toArray(new Category[0])),
Category.of("Proxy", Category.of("Proxy",
Group.of("Proxy", Group.of("Proxy",
Setting.of("Type", proxyType).needsRestart(), Setting.of("Type", proxyType).needsRestart(),

View File

@ -66,6 +66,7 @@ public class Settings {
public String contactsheetTimestampLook = "font=sans-serif:fontcolor=white:fontsize=60:box=1:boxcolor=black@0.5:boxborderw=5"; public String contactsheetTimestampLook = "font=sans-serif:fontcolor=white:fontsize=60:box=1:boxcolor=black@0.5:boxborderw=5";
public String dateTimeFormat = ""; public String dateTimeFormat = "";
public int defaultPriority = 50; public int defaultPriority = 50;
public boolean deleteOrphanedRecordingMetadata = false;
public boolean determineResolution = false; public boolean determineResolution = false;
public List<String> disabledSites = new ArrayList<>(); public List<String> disabledSites = new ArrayList<>();
public String downloadFilename = "$sanitize(${modelName})_$format(${localDateTime})"; public String downloadFilename = "$sanitize(${modelName})_$format(${localDateTime})";

View File

@ -104,7 +104,13 @@ public class RecordingManager {
if (recordingExists(recording)) { if (recordingExists(recording)) {
recordings.add(recording); recordings.add(recording);
} else { } else {
log.info("Recording {} does not exist anymore -> ignoring recording", recording); if (config.getSettings().deleteOrphanedRecordingMetadata) {
log.info("Recording {} does not exist anymore -> deleting recording", recording);
boolean deleted = Files.deleteIfExists(new File(recording.getMetaDataFile()).toPath());
log.info("Recording {} has {}been deleted", recording, deleted ? "" : "not ");
} else {
log.info("Recording {} does not exist anymore -> ignoring recording", recording);
}
} }
} }