X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=mythtv%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fmythtv%2FLinkStructure.java;h=486723373f60e3e39de5e651f5adaf6a48313653;hb=7ad16dc3376b6d028e6ba9ad10171eac98493d4e;hp=868ab09d9efa88be5068030140c9c842cbc62c7e;hpb=06570e39b7e2c63d2f8094baf6658bd269610dcc;p=utils diff --git a/mythtv/src/main/java/org/wamblee/mythtv/LinkStructure.java b/mythtv/src/main/java/org/wamblee/mythtv/LinkStructure.java index 868ab09d..48672337 100644 --- a/mythtv/src/main/java/org/wamblee/mythtv/LinkStructure.java +++ b/mythtv/src/main/java/org/wamblee/mythtv/LinkStructure.java @@ -34,7 +34,7 @@ public class LinkStructure implements Listener { private static final Log LOG = LogFactory.getLog(LinkStructure.class); - private String _monitorDir = "/mnt/vcr"; + private String _monitorDir; private File _linkDir; @@ -47,11 +47,21 @@ public class LinkStructure implements Listener { public LinkStructure(String aMonitorDir, File aLinkDir, RecordingDatabase aDatabase) { _monitorDir = aMonitorDir + "/"; + deleteDir(aLinkDir); _linkDir = aLinkDir; _database = aDatabase; _format = new SimpleDateFormat("yyyy-MM-dd-HH:mm"); _recordings = new HashMap(); } + + private void deleteDir(File aFile) { + for (File file: aFile.listFiles()) { + if ( file.isDirectory()) { + deleteDir(file); + } + LOG.info("File deleted " + file + ": " + file.delete()); + } + } /* * (non-Javadoc) @@ -64,6 +74,8 @@ public class LinkStructure implements Listener { // Re-assess file type Recording recording = _recordings.get(aFile); LOG.debug("Recording changed " + recording); + recording.setFilesize(aFile.length()); + _database.update(recording); String dir = getDirectory(recording); FileType type = getFileType(aFile); String path = dir + "/" + getFilename(recording, type); @@ -109,6 +121,7 @@ public class LinkStructure implements Listener { LOG.debug("file deleted " + aFile); Recording recording = _recordings.get(aFile); _recordings.remove(recording); + // mythtv will remove the recording from its database itself. LOG.info("recording deleted " + recording); String dir = getDirectory(recording); for (FileType t: FileType.values()) { @@ -118,7 +131,7 @@ public class LinkStructure implements Listener { } private String getDirectory(Recording aRecording) { - return aRecording.getTitle(); + return aRecording.getTitle().replaceAll("/", "-"); } private FileType getFileType(File aFile) { @@ -138,10 +151,10 @@ public class LinkStructure implements Listener { } private String getFilename(Recording aRecording, FileType aType) { - return _format.format(aRecording.getProgstart()) + "-" + return (_format.format(aRecording.getProgstart()) + "-" + aRecording.getSubtitle() + "-" + aRecording.getChannel().getName() + "." - + aType.toString().toLowerCase(); + + aType.toString().toLowerCase()).replaceAll("/", "-"); } private boolean exists(String aPath) { @@ -197,5 +210,4 @@ public class LinkStructure implements Listener { e); } } - }