From a43a9171c1e6f358b8e3de32ba6ca73ec1ac5720 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sat, 25 Jul 2015 22:47:00 +0000 Subject: [PATCH] * support {age} for FileFilter expressions --- .../filebot/format/ExpressionFormatMethods.java | 16 ++++++++++------ source/net/filebot/format/MediaBindingBean.java | 3 +++ source/net/filebot/web/SimpleDate.java | 9 +++++++++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/source/net/filebot/format/ExpressionFormatMethods.java b/source/net/filebot/format/ExpressionFormatMethods.java index 230cdbd3..ac7442ae 100644 --- a/source/net/filebot/format/ExpressionFormatMethods.java +++ b/source/net/filebot/format/ExpressionFormatMethods.java @@ -331,13 +331,17 @@ public class ExpressionFormatMethods { return 0; } - public static long getCreationDate(File self) throws IOException { - BasicFileAttributes attr = Files.getFileAttributeView(self.toPath(), BasicFileAttributeView.class).readAttributes(); - long creationDate = attr.creationTime().toMillis(); - if (creationDate > 0) { - return creationDate; + public static long getCreationDate(File self) { + try { + BasicFileAttributes attr = Files.getFileAttributeView(self.toPath(), BasicFileAttributeView.class).readAttributes(); + long creationDate = attr.creationTime().toMillis(); + if (creationDate > 0) { + return creationDate; + } + return attr.lastModifiedTime().toMillis(); + } catch (IOException e) { + throw new RuntimeException(e); } - return attr.lastModifiedTime().toMillis(); } public static File toFile(String self) { diff --git a/source/net/filebot/format/MediaBindingBean.java b/source/net/filebot/format/MediaBindingBean.java index c709a043..8dd7cc9d 100644 --- a/source/net/filebot/format/MediaBindingBean.java +++ b/source/net/filebot/format/MediaBindingBean.java @@ -171,6 +171,9 @@ public class MediaBindingBean { if (infoObject instanceof AudioTrack) { return getMusic().getAlbumReleaseDate(); } + if (infoObject instanceof File) { + return new SimpleDate(getCreationDate(((File) infoObject))); + } // no date info for the model return null; diff --git a/source/net/filebot/web/SimpleDate.java b/source/net/filebot/web/SimpleDate.java index f9b52d25..9fc2f152 100644 --- a/source/net/filebot/web/SimpleDate.java +++ b/source/net/filebot/web/SimpleDate.java @@ -7,6 +7,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; +import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; @@ -26,6 +27,14 @@ public class SimpleDate implements Serializable, Comparable { this.day = day; } + public SimpleDate(long t) { + GregorianCalendar c = new GregorianCalendar(); + c.setTime(new Date(t)); + year = c.get(Calendar.YEAR); + month = c.get(Calendar.MONTH) + 1; + day = c.get(Calendar.DAY_OF_MONTH); + } + public int getYear() { return year; }