Prechádzať zdrojové kódy

first part of folder parse

LH 6 rokov pred
rodič
commit
2aefbc2150

+ 1 - 1
LogBlockHeatMapper/src/main/java/de/nplusc/izc/logblockheatmapper/LogBlockHeatmapper.java

@@ -190,7 +190,7 @@ public class LogBlockHeatmapper
             System.out.print(i+"lines rasterized\r");
         }
         //bw.close();
-        ImageIO.write(bi, "png",new File( "D:/emc2/arca_slash/database/heatmap.png"));
+        ImageIO.write(bi, "png",new File( "map.png"));
     }
     
 }

+ 4 - 0
build.gradle

@@ -18,5 +18,9 @@ allprojects {
 		//}
 		
 		maven { url "http://repo.gradle.org/gradle/libs-releases-local" }
+		
+		maven {
+			url "https://dl.bintray.com/ijabz/maven"
+		}
 	}
 }

+ 1 - 0
izpl-shared/build.gradle

@@ -9,4 +9,5 @@ dependencies{
 	compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.1'
 	compile group: 'org.apache.logging.log4j', name: 'log4j-iostreams', version: '2.1'
     compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.1'
+	compile "net.jthink:jaudiotagger:2+"
 }

+ 65 - 1
izpl-shared/src/main/java/de/nplusc/izc/iZpl/Utils/shared/PLFileIO.java

@@ -35,9 +35,18 @@ import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.jaudiotagger.audio.AudioFile;
+import org.jaudiotagger.audio.AudioFileIO;
+import org.jaudiotagger.audio.exceptions.CannotReadException;
+import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException;
+import org.jaudiotagger.audio.exceptions.ReadOnlyFileException;
+import org.jaudiotagger.tag.FieldKey;
+import org.jaudiotagger.tag.Tag;
+import org.jaudiotagger.tag.TagException;
 
 /**
  *
@@ -60,6 +69,61 @@ public class PLFileIO
     * /Pfad/zu/UnsplittbarerListe.iZpl
     */
     
+    public static RawPlayListFile readFolderAsVirtualPlayListFile(String path) throws InvalidPlayListFileException
+    {
+        l.trace("Parsing Folder {}.",path);
+        File f = new File(path);
+        File[] elements = f.listFiles();
+        List<PlayListItem> virtualList = new LinkedList<>();
+        for (File element : elements)
+        {
+            if(element.isDirectory())
+            {
+                SinglePlayListItem item = new SinglePlayListItem(element.getPath(), element.getName(), 1, true, false);
+                virtualList.add(item);
+                l.info("Added Folder ({}) as include element",element.getPath());
+            }
+            else
+            {
+                if(element.isFile()&&!element.isHidden())
+                {
+                    
+                    //TODO subfunction!
+                    try
+                    {
+                        //itm.setTitle("#EXTINF,0,"+new File(ln).getName());
+                        AudioFile file = AudioFileIO.read(element);
+                        int length = file.getAudioHeader().getTrackLength();
+                        Tag tag = file.getTag();
+                        String metadata = "#EXTINF,length,";
+                        if(tag!=null)
+                        {
+                            metadata+= tag.getFirst(FieldKey.ARTIST)+" - "+tag.getFirst(FieldKey.TITLE);
+                        }
+                        else
+                        {
+                            metadata+=element.getName();
+                        }
+                        SinglePlayListItem item  = new SinglePlayListItem(element.getPath(), metadata, length);
+                        l.trace("Added File ({})to the list.",element.getPath());
+                        virtualList.add(item);
+                    } catch (CannotReadException | IOException | TagException | ReadOnlyFileException | InvalidAudioFrameException ex)
+                    {
+                        l.info("Skipped invalid File ({})",element.getPath());
+                    }
+                    
+                }
+                else
+                {
+                    l.info("Skipped File ({})due to being hidden",element.getPath());
+                }
+            }
+            
+        }
+        return null;
+    }
+    
+    
     
     //private static Yaml y = new Yaml();
     private static final Logger l = LogManager.getLogger();
@@ -235,7 +299,7 @@ public class PLFileIO
                             {
                                 if(!extinf)
                                 {
-                                    itm.setTitle("#EXTINF,0,"+new File(ln).getName());
+                                    itm.setTitle("#EXTINF,0,"+new File(ln).getName()); //TODO ID3parse
                                 }
                                 if(!(ln.substring(1).startsWith(":")||ln.startsWith(File.separator)))
                                 {