From 2d9242a13be586e209d23d288dce17521b008bd7 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Wed, 24 Oct 2012 10:10:03 +0000 Subject: [PATCH] * fine-tune xattr related logging and standard settings --- build.xml | 2 +- installer/appbundle/filebot | 2 +- installer/ipkg/filebot.sh | 2 +- .../filebot/cli/CmdlineOperations.java | 4 +- .../filebot/cli/ScriptShell.lib.groovy | 8 ++++ .../filebot/media/MediaDetection.java | 40 +++++++++++++------ .../filebot/media/MetaAttributes.java | 2 +- .../filebot/ui/rename/RenameAction.java | 2 +- 8 files changed, 43 insertions(+), 19 deletions(-) diff --git a/build.xml b/build.xml index e58aafc1..3be90639 100644 --- a/build.xml +++ b/build.xml @@ -208,7 +208,7 @@ - + diff --git a/installer/appbundle/filebot b/installer/appbundle/filebot index 86e75f58..6ec58161 100644 --- a/installer/appbundle/filebot +++ b/installer/appbundle/filebot @@ -4,4 +4,4 @@ while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done dir_bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )" dir_app=$dir_bin/../Resources/Java -java -Xmx256m -Djava.awt.headless=true -Dunixfs=false -DuseExtendedFileAttributes=true -Dapplication.deployment=app "-Djna.library.path=$dir_app" "-Djava.library.path=$dir_app" -Dsun.net.client.defaultConnectTimeout=5000 -Dsun.net.client.defaultReadTimeout=25000 -jar "$dir_app/FileBot.jar" "$@" +java -Xmx256m -Djava.awt.headless=true -Dunixfs=false -DuseExtendedFileAttributes=false -Dapplication.deployment=app "-Djna.library.path=$dir_app" "-Djava.library.path=$dir_app" -Dsun.net.client.defaultConnectTimeout=5000 -Dsun.net.client.defaultReadTimeout=25000 -jar "$dir_app/FileBot.jar" "$@" diff --git a/installer/ipkg/filebot.sh b/installer/ipkg/filebot.sh index 570e6b16..8051e24b 100644 --- a/installer/ipkg/filebot.sh +++ b/installer/ipkg/filebot.sh @@ -1,2 +1,2 @@ #!/bin/sh -java -Dunixfs=false -DuseExtendedFileAttributes=false -Dapplication.deployment=ipkg -Dapplication.dir=$HOME/.filebot -Djava.io.tmpdir=$HOME/.filebot/temp -Djna.library.path=/usr/share/filebot -Djava.library.path=/usr/share/filebot -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=60000 -jar /usr/share/filebot/FileBot.jar "$@" \ No newline at end of file +java -Dunixfs=false -DuseExtendedFileAttributes=true -Dapplication.deployment=ipkg -Dapplication.dir=$HOME/.filebot -Djava.io.tmpdir=$HOME/.filebot/temp -Djna.library.path=/usr/share/filebot -Djava.library.path=/usr/share/filebot -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=60000 -jar /usr/share/filebot/FileBot.jar "$@" \ No newline at end of file diff --git a/source/net/sourceforge/filebot/cli/CmdlineOperations.java b/source/net/sourceforge/filebot/cli/CmdlineOperations.java index f93a2798..1946421b 100644 --- a/source/net/sourceforge/filebot/cli/CmdlineOperations.java +++ b/source/net/sourceforge/filebot/cli/CmdlineOperations.java @@ -212,7 +212,7 @@ public class CmdlineOperations implements CmdlineInterface { try { MediaDetection.storeMetaInfo(file, episode); } catch (Throwable e) { - CLILogger.warning(e.getMessage()); + CLILogger.warning("Failed to write xattr: " + e.getMessage()); } } @@ -481,7 +481,7 @@ public class CmdlineOperations implements CmdlineInterface { try { MediaDetection.storeMetaInfo(file, movie); } catch (Throwable e) { - CLILogger.warning(e.getMessage()); + CLILogger.warning("Failed to write xattr: " + e.getMessage()); } } diff --git a/source/net/sourceforge/filebot/cli/ScriptShell.lib.groovy b/source/net/sourceforge/filebot/cli/ScriptShell.lib.groovy index 3b9444a7..44b98f5b 100644 --- a/source/net/sourceforge/filebot/cli/ScriptShell.lib.groovy +++ b/source/net/sourceforge/filebot/cli/ScriptShell.lib.groovy @@ -98,6 +98,14 @@ def telnet(host, int port, csn = 'utf-8', Closure handler) { } +// json-io helpers +import com.cedarsoftware.util.io.* + +Object.metaClass.objectToJson = { pretty = true -> JsonWriter.objectToJson(delegate, pretty) } +String.metaClass.jsonToObject = { JsonReader.jsonToJava(delegate) } +String.metaClass.jsonToMap = { JsonReader.jsonToMaps(delegate) } + + // Template Engine helpers import groovy.text.XmlTemplateEngine import groovy.text.GStringTemplateEngine diff --git a/source/net/sourceforge/filebot/media/MediaDetection.java b/source/net/sourceforge/filebot/media/MediaDetection.java index d40f4254..97733356 100644 --- a/source/net/sourceforge/filebot/media/MediaDetection.java +++ b/source/net/sourceforge/filebot/media/MediaDetection.java @@ -237,13 +237,18 @@ public class MediaDetection { // try xattr metadata if enabled if (useExtendedFileAttributes()) { - for (File it : files) { - try { - Episode episode = (Episode) new MetaAttributes(it).getMetaData(); - names.add(episode.getSeriesName()); - } catch (Throwable e) { - // ignore + try { + for (File it : files) { + MetaAttributes xattr = new MetaAttributes(it); + try { + Episode episode = (Episode) xattr.getMetaData(); + names.add(episode.getSeriesName()); + } catch (Exception e) { + // can't read meta attributes => ignore + } } + } catch (Throwable e) { + Logger.getLogger(MediaDetection.class.getClass().getName()).warning("Failed to read xattr: " + e.getMessage()); } } @@ -363,12 +368,17 @@ public class MediaDetection { // try xattr metadata if enabled if (useExtendedFileAttributes()) { try { - Movie movie = (Movie) new MetaAttributes(movieFile).getMetaData(); - if (movie != null) { - options.add(movie); + MetaAttributes xattr = new MetaAttributes(movieFile); + try { + Movie movie = (Movie) xattr.getMetaData(); + if (movie != null) { + options.add(movie); + } + } catch (Exception e) { + // can't read meta attributes => ignore } } catch (Throwable e) { - // ignore + Logger.getLogger(MediaDetection.class.getClass().getName()).warning("Failed to read xattr: " + e.getMessage()); } } @@ -781,9 +791,15 @@ public class MediaDetection { // set creation date to episode / movie release date if (model instanceof Episode) { - metadata.setCreationDate(((Episode) model).airdate().getTimeStamp()); + Episode episode = (Episode) model; + if (episode.airdate() != null) { + metadata.setCreationDate(episode.airdate().getTimeStamp()); + } } else if (model instanceof Movie) { - metadata.setCreationDate(new Date(((Movie) model).getYear(), 1, 1).getTimeStamp()); + Movie movie = (Movie) model; + if (movie.getYear() > 0) { + metadata.setCreationDate(new Date(movie.getYear(), 1, 1).getTimeStamp()); + } } } diff --git a/source/net/sourceforge/filebot/media/MetaAttributes.java b/source/net/sourceforge/filebot/media/MetaAttributes.java index 738c43a3..e20d9f6f 100644 --- a/source/net/sourceforge/filebot/media/MetaAttributes.java +++ b/source/net/sourceforge/filebot/media/MetaAttributes.java @@ -33,7 +33,7 @@ public class MetaAttributes { try { fileAttributeView.setTimes(null, null, FileTime.fromMillis(millis)); } catch (IOException e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } } diff --git a/source/net/sourceforge/filebot/ui/rename/RenameAction.java b/source/net/sourceforge/filebot/ui/rename/RenameAction.java index c2f9f641..737f1fbf 100644 --- a/source/net/sourceforge/filebot/ui/rename/RenameAction.java +++ b/source/net/sourceforge/filebot/ui/rename/RenameAction.java @@ -88,7 +88,7 @@ class RenameAction extends AbstractAction { try { MediaDetection.storeMetaInfo(match.getCandidate(), match.getValue()); } catch (Throwable e) { - Logger.getLogger(RenameAction.class.getName()).log(Level.WARNING, e.getMessage()); + Logger.getLogger(RenameAction.class.getName()).warning("Failed to write xattr: " + e.getMessage()); } } }