From 75a625bbe017a687db740959d97190291bc971ce Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Wed, 13 Feb 2019 22:07:34 +0100 Subject: [PATCH] Improve deleteIfTooShort method If a directory does not exist, it returns true. If the directory is empty, it deletes the directory and empty parent directories and returns true. --- .../java/ctbrec/recorder/LocalRecorder.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/common/src/main/java/ctbrec/recorder/LocalRecorder.java b/common/src/main/java/ctbrec/recorder/LocalRecorder.java index 91e27d62..d47385e2 100644 --- a/common/src/main/java/ctbrec/recorder/LocalRecorder.java +++ b/common/src/main/java/ctbrec/recorder/LocalRecorder.java @@ -792,24 +792,33 @@ public class LocalRecorder implements Recorder { // TODO maybe get file size and bitrate and check, if the values are plausible // we could also compare the length with the time elapsed since starting the recording private boolean deleteIfTooShort(Download download) { - long minimumLengthInSeconds = Config.getInstance().getSettings().minimumLengthInSeconds; - if(minimumLengthInSeconds <= 0) { - return false; - } - try { - LOG.debug("Determining video length for {}", download.getTarget()); File target = download.getTarget(); + if(!target.exists()) { + return true; + } + if(target.isDirectory()) { - if(!target.exists() || target.list() == null || target.list().length == 0) { + if(target.list() == null || target.list().length == 0) { + deleteDirectory(target); + deleteEmptyParents(target); return true; } } else { - if(!target.exists() || target.length() == 0) { + if(target.length() == 0) { + Files.delete(target.toPath()); + deleteEmptyParents(target.getParentFile()); return true; } } + long minimumLengthInSeconds = Config.getInstance().getSettings().minimumLengthInSeconds; + if(minimumLengthInSeconds <= 0) { + return false; + } + + LOG.debug("Determining video length for {}", download.getTarget()); + double duration = 0; if(target.isDirectory()) { File playlist = new File(target, "playlist.m3u8");