X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2Fmetadata%2FDirectoryMetadata.java;h=4877a7393b40c414db81eefec08131e8bf8e69d6;hb=8b0fa37543a8ccd5e37d7e16f31b449f8f5440b7;hp=d6e65fc0d224b7e52a4b87b7ca3a5d85eb9a7e43;hpb=ddbd9cbd9c6835c7f130445337fa3b507264eb77;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/DirectoryMetadata.java b/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/DirectoryMetadata.java index d6e65fc..4877a73 100755 --- a/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/DirectoryMetadata.java +++ b/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/DirectoryMetadata.java @@ -10,7 +10,6 @@ package eu.svjatoslav.meviz.htmlindexer.metadata; import eu.svjatoslav.commons.file.FilePathParser; -import eu.svjatoslav.meviz.htmlindexer.AbstractIndexer; import eu.svjatoslav.meviz.htmlindexer.FileSortComparator; import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.*; @@ -18,6 +17,9 @@ import java.io.File; import java.io.Serializable; import java.util.*; +import static eu.svjatoslav.meviz.htmlindexer.AbstractIndexer.isImage; +import static eu.svjatoslav.meviz.htmlindexer.AbstractIndexer.isVideo; + /** * Corresponds to single filesystem directory. */ @@ -40,21 +42,21 @@ public class DirectoryMetadata implements Serializable { while (fileIterator.hasNext()) { final AbstractFile file = fileIterator.next(); - if (!file.isMetaInfoVerified()) + if (!file.isMetadataVerified()) fileIterator.remove(); } } - public void ensureFileMetainfoIsUpToDate(final File parentDirectory, + public void ensureFileMetadataIsUpToDate(final File parentDirectory, final File file) throws Exception { final String fileName = file.getName(); if (fileNameToFileMap.containsKey(fileName)) { - final boolean metainfoUpdated = fileNameToFileMap.get(fileName) - .ensureFileMetainfoIsUpToDate(parentDirectory); + final boolean metadataUpdated = fileNameToFileMap.get(fileName) + .ensureFileMetadataIsUpToDate(parentDirectory); - if (metainfoUpdated) + if (metadataUpdated) changed = true; } else registerFile(parentDirectory, file); @@ -70,7 +72,7 @@ public class DirectoryMetadata implements Serializable { final String fileExtension = FilePathParser.getFileExtension(fileName) .toLowerCase(); - if (AbstractIndexer.isImage(fileExtension)) + if (isImage(fileExtension)) try { return new Picture(parentDirectory, fileName); } catch (final Exception exception) { @@ -78,6 +80,14 @@ public class DirectoryMetadata implements Serializable { return new GeneralFile(parentDirectory, fileName); } + if (isVideo(fileExtension)) + try { + return new Video(parentDirectory, fileName); + } catch (final Exception exception) { + // in case video decoding failed, handle it as general file + return new GeneralFile(parentDirectory, fileName); + } + if (fileName.endsWith(".meviz.org")) return new MevizSpecialFile(parentDirectory, fileName); @@ -132,7 +142,7 @@ public class DirectoryMetadata implements Serializable { public void removeUnusedMetadataEntries() { - new HashSet<>(fileNameToFileMap.keySet()).stream().filter(key -> !fileNameToFileMap.get(key).isMetaInfoVerified()).forEach(key -> { + new HashSet<>(fileNameToFileMap.keySet()).stream().filter(key -> !fileNameToFileMap.get(key).isMetadataVerified()).forEach(key -> { fileNameToFileMap.remove(key); changed = true; });