X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2Fmetadata%2FDirectoryMetadata.java;h=8b64bcd4fbff5397af55c0cd5173ade746d6dacc;hb=5d6cdd532d23ef8a0e8aa379e6170d382740717e;hp=d6e65fc0d224b7e52a4b87b7ca3a5d85eb9a7e43;hpb=cf6e4ace4972f24f40f88ea12fcf99c763e4e40a;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..8b64bcd 100755 --- a/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/DirectoryMetadata.java +++ b/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/DirectoryMetadata.java @@ -1,16 +1,12 @@ /* - * Meviz - Various tools collection to work with multimedia. - * Copyright (C) 2012 -- 2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public License - * as published by the Free Software Foundation. + * Meviz - Various tools collection to work with multimedia. Author: Svjatoslav Agejenko. + * This project is released under Creative Commons Zero (CC0) license. */ + 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 +14,9 @@ import java.io.File; import java.io.Serializable; import java.util.*; +import static eu.svjatoslav.meviz.htmlindexer.indexer.AbstractIndexer.isImage; +import static eu.svjatoslav.meviz.htmlindexer.indexer.AbstractIndexer.isVideo; + /** * Corresponds to single filesystem directory. */ @@ -40,21 +39,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 +69,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 +77,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 +139,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; });