initial commit
This commit is contained in:
commit
f6a2ba3674
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="openjdk-19" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/PhotoMemories.iml" filepath="$PROJECT_DIR$/PhotoMemories.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,165 @@
|
||||||
|
import java.awt.*;
|
||||||
|
import java.io.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.TreeMap;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
ArrayList<File> dirs = new ArrayList<>();
|
||||||
|
static TreeMap<String, ArrayList<File>> cal = new TreeMap<>();
|
||||||
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
//\\schatzkammer\homes\bene\Photos\MobileBackup\A52s von Benedikt\DCIM\Camera
|
||||||
|
//P:\Android Xcover2
|
||||||
|
|
||||||
|
//findDirsFrom2009();
|
||||||
|
readFile("cal_2009-2023.txt");
|
||||||
|
readFile("cal_androidXcover2.txt");
|
||||||
|
readFile("cal_A52s.txt");
|
||||||
|
//createFile();
|
||||||
|
//traverse(new File("\\\\schatzkammer\\homes\\bene\\Photos\\MobileBackup\\A52s von Benedikt\\DCIM\\Camera"), true, "([0-9]{4})([0-9]{2})([0-9]{2})");
|
||||||
|
//createFile();
|
||||||
|
while(true) {
|
||||||
|
showRandomImageOfDay("07-03");
|
||||||
|
Thread.sleep(2000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void showRandomImageOfDay(String date)
|
||||||
|
{
|
||||||
|
ArrayList<File> temp = cal.get(date);
|
||||||
|
showImage(getRandomFile(temp));
|
||||||
|
}
|
||||||
|
|
||||||
|
static File getRandomFile(ArrayList<File> list)
|
||||||
|
{
|
||||||
|
Random rand = new Random();
|
||||||
|
int randomIndex = rand.nextInt(list.size());
|
||||||
|
File f = list.get(randomIndex);
|
||||||
|
if(f.isDirectory())
|
||||||
|
{
|
||||||
|
File[] children = f.listFiles();
|
||||||
|
if(children.length == 0)
|
||||||
|
return getRandomFile(list);
|
||||||
|
randomIndex = rand.nextInt(children.length);
|
||||||
|
return children[randomIndex];
|
||||||
|
}
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void showImage(File file)
|
||||||
|
{
|
||||||
|
System.out.println(file.getAbsolutePath());
|
||||||
|
if (Desktop.isDesktopSupported()) {
|
||||||
|
try {
|
||||||
|
Desktop desktop = Desktop.getDesktop();
|
||||||
|
desktop.open(file);
|
||||||
|
} catch (IOException ex) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void readFile(String filename)
|
||||||
|
{
|
||||||
|
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
String[] lineS = line.split("_:_");
|
||||||
|
String key = lineS[0];
|
||||||
|
if(!cal.containsKey(key))
|
||||||
|
cal.put(key, new ArrayList<>());
|
||||||
|
lineS = lineS[1].split(",");
|
||||||
|
for(String s: lineS)
|
||||||
|
{
|
||||||
|
File f = new File(s);
|
||||||
|
if(!f.exists())
|
||||||
|
{
|
||||||
|
System.out.print("ERROR "+f+" existiert nicht!");
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
cal.get(key).add(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void findDirsFrom2009()
|
||||||
|
{
|
||||||
|
for (int i = 2009; i < 2100; i++) {
|
||||||
|
File temp = new File(i+"");
|
||||||
|
if(temp.exists())
|
||||||
|
traverse(temp, false, "([0-9]{4})[-_]([0-9]{2})[-_]([0-9]{2})");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void createFile()
|
||||||
|
{
|
||||||
|
Map.Entry<String, ArrayList<File>> entry = cal.pollFirstEntry();
|
||||||
|
try {
|
||||||
|
FileWriter fw = new FileWriter("output.txt");
|
||||||
|
while(entry != null)
|
||||||
|
{
|
||||||
|
fw.append(entry.getKey()).append("_:_");
|
||||||
|
for(File file: entry.getValue())
|
||||||
|
{
|
||||||
|
fw.append(file.getAbsolutePath()).append(",");
|
||||||
|
}
|
||||||
|
fw.append("\n");
|
||||||
|
entry = cal.pollFirstEntry();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Der FileWriter hat die Datei erfolgreich beschrieben!");
|
||||||
|
fw.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void traverse(File directory, Boolean findFiles, String pattern)
|
||||||
|
{
|
||||||
|
File[] files = directory.listFiles();
|
||||||
|
for (File file : files) {
|
||||||
|
if(file.isDirectory() )
|
||||||
|
{
|
||||||
|
//File is a file
|
||||||
|
Pattern pPattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
|
||||||
|
String filename = file.getName();
|
||||||
|
Matcher matcher = pPattern.matcher(filename);
|
||||||
|
if(matcher.find()){
|
||||||
|
String key = matcher.group(2)+"-"+matcher.group(3);
|
||||||
|
if(!cal.containsKey(key))
|
||||||
|
{
|
||||||
|
cal.put(key, new ArrayList<>());
|
||||||
|
}
|
||||||
|
cal.get(key).add(file);
|
||||||
|
}
|
||||||
|
traverse(file, findFiles, pattern);
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(findFiles)
|
||||||
|
{
|
||||||
|
//File ist ein Directory
|
||||||
|
Pattern pPattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
|
||||||
|
String filename = file.getName();
|
||||||
|
Matcher matcher = pPattern.matcher(filename);
|
||||||
|
if(matcher.find()){
|
||||||
|
String key = matcher.group(2)+"-"+matcher.group(3);
|
||||||
|
if(!cal.containsKey(key))
|
||||||
|
{
|
||||||
|
cal.put(key, new ArrayList<>());
|
||||||
|
}
|
||||||
|
cal.get(key).add(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="GENERAL_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
Loading…
Reference in New Issue