From 0d90d19d051d2b06366b18ccb175416df0b9e383 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Tue, 26 Feb 2008 20:45:28 +0000 Subject: [PATCH] * updated AnidbClient (due to changes of the website) * not logging exception stacktraces anymore --- source/Main.java | 3 +- .../sourceforge/filebot/ui/FileBotList.java | 2 +- .../sourceforge/filebot/ui/FileBotTree.java | 2 +- .../sourceforge/filebot/ui/FileBotUtil.java | 18 ------------ .../ui/panel/analyze/tools/SplitPanel.java | 2 +- .../ui/panel/analyze/tools/TypePanel.java | 2 +- .../list/FileListTransferablePolicy.java | 2 +- .../NamesRenameListTransferablePolicy.java | 2 +- .../ui/panel/search/HyperlinkLabel.java | 2 +- .../filebot/ui/panel/search/SearchPanel.java | 4 +-- .../filebot/ui/panel/sfv/SfvTable.java | 2 +- .../ui/panel/sfv/SfvTransferablePolicy.java | 2 +- .../filebot/ui/transfer/FileTransferable.java | 23 ++++++++++++--- .../ui/transfer/SaveableExportHandler.java | 4 +-- .../FileTransferablePolicy.java | 15 ++++++---- .../TextTransferablePolicy.java | 2 +- .../sourceforge/filebot/web/AnidbClient.java | 6 ++-- .../sourceforge/filebot/web/DownloadTask.java | 2 +- .../filebot/web/MovieDescriptor.java | 23 ++++++++++----- .../filebot/web/OpenSubtitlesClient.java | 29 +++++++++++++++---- 20 files changed, 88 insertions(+), 59 deletions(-) diff --git a/source/Main.java b/source/Main.java index f62eb5af..a6124d41 100644 --- a/source/Main.java +++ b/source/Main.java @@ -13,13 +13,12 @@ public class Main { * @param args */ public static void main(String[] args) { - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).setLevel(Level.ALL); try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } SwingUtilities.invokeLater(new Runnable() { diff --git a/source/net/sourceforge/filebot/ui/FileBotList.java b/source/net/sourceforge/filebot/ui/FileBotList.java index cff93888..d2dc6474 100644 --- a/source/net/sourceforge/filebot/ui/FileBotList.java +++ b/source/net/sourceforge/filebot/ui/FileBotList.java @@ -135,7 +135,7 @@ public class FileBotList extends JPanel implements Saveable, TransferablePolicyS out.close(); } catch (FileNotFoundException e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } diff --git a/source/net/sourceforge/filebot/ui/FileBotTree.java b/source/net/sourceforge/filebot/ui/FileBotTree.java index 1fb564d1..05607a2e 100644 --- a/source/net/sourceforge/filebot/ui/FileBotTree.java +++ b/source/net/sourceforge/filebot/ui/FileBotTree.java @@ -193,7 +193,7 @@ public class FileBotTree extends JTree implements TransferablePolicySupport { Desktop.getDesktop().open(file); } catch (Exception e) { MessageManager.showWarning(e.getMessage()); - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } } diff --git a/source/net/sourceforge/filebot/ui/FileBotUtil.java b/source/net/sourceforge/filebot/ui/FileBotUtil.java index 5104d729..8678a52a 100644 --- a/source/net/sourceforge/filebot/ui/FileBotUtil.java +++ b/source/net/sourceforge/filebot/ui/FileBotUtil.java @@ -2,10 +2,6 @@ package net.sourceforge.filebot.ui; -import java.awt.datatransfer.DataFlavor; -import java.util.logging.Level; -import java.util.logging.Logger; - import javax.swing.Action; import javax.swing.JComponent; import javax.swing.KeyStroke; @@ -36,20 +32,6 @@ public class FileBotUtil { return filename.replaceAll("[\\\\/:*?\"<>|]", ""); } - public static final DataFlavor uriListFlavor = createUriListFlavor(); - - - private static DataFlavor createUriListFlavor() { - try { - return new DataFlavor("text/uri-list;class=java.lang.String"); - } catch (ClassNotFoundException e) { - // will never happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); - } - - return null; - } - public static Throwable getRootCause(Throwable t) { while (t.getCause() != null) { diff --git a/source/net/sourceforge/filebot/ui/panel/analyze/tools/SplitPanel.java b/source/net/sourceforge/filebot/ui/panel/analyze/tools/SplitPanel.java index e6202a17..f41da11c 100644 --- a/source/net/sourceforge/filebot/ui/panel/analyze/tools/SplitPanel.java +++ b/source/net/sourceforge/filebot/ui/panel/analyze/tools/SplitPanel.java @@ -183,7 +183,7 @@ public class SplitPanel extends ToolPanel implements ChangeListener { tree.setModel(model); } catch (Exception e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } SplitPanel.this.firePropertyChange(LOADING_PROPERTY, null, false); diff --git a/source/net/sourceforge/filebot/ui/panel/analyze/tools/TypePanel.java b/source/net/sourceforge/filebot/ui/panel/analyze/tools/TypePanel.java index 5f04242a..4c38bdb7 100644 --- a/source/net/sourceforge/filebot/ui/panel/analyze/tools/TypePanel.java +++ b/source/net/sourceforge/filebot/ui/panel/analyze/tools/TypePanel.java @@ -131,7 +131,7 @@ public class TypePanel extends ToolPanel { tree.setModel(model); } catch (Exception e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } TypePanel.this.firePropertyChange(LOADING_PROPERTY, null, false); diff --git a/source/net/sourceforge/filebot/ui/panel/list/FileListTransferablePolicy.java b/source/net/sourceforge/filebot/ui/panel/list/FileListTransferablePolicy.java index e9406b74..ef4d66b9 100644 --- a/source/net/sourceforge/filebot/ui/panel/list/FileListTransferablePolicy.java +++ b/source/net/sourceforge/filebot/ui/panel/list/FileListTransferablePolicy.java @@ -52,7 +52,7 @@ public class FileListTransferablePolicy extends FileTransferablePolicy { } } catch (IOException e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } } diff --git a/source/net/sourceforge/filebot/ui/panel/rename/NamesRenameListTransferablePolicy.java b/source/net/sourceforge/filebot/ui/panel/rename/NamesRenameListTransferablePolicy.java index b0f88c94..e8cc8ebd 100644 --- a/source/net/sourceforge/filebot/ui/panel/rename/NamesRenameListTransferablePolicy.java +++ b/source/net/sourceforge/filebot/ui/panel/rename/NamesRenameListTransferablePolicy.java @@ -72,7 +72,7 @@ public class NamesRenameListTransferablePolicy extends MultiTransferablePolicy { } } catch (Exception e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } diff --git a/source/net/sourceforge/filebot/ui/panel/search/HyperlinkLabel.java b/source/net/sourceforge/filebot/ui/panel/search/HyperlinkLabel.java index 61ecbedc..fc66c83c 100644 --- a/source/net/sourceforge/filebot/ui/panel/search/HyperlinkLabel.java +++ b/source/net/sourceforge/filebot/ui/panel/search/HyperlinkLabel.java @@ -38,7 +38,7 @@ public class HyperlinkLabel extends JLabel { Desktop.getDesktop().browse(url.toURI()); } catch (Exception e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } diff --git a/source/net/sourceforge/filebot/ui/panel/search/SearchPanel.java b/source/net/sourceforge/filebot/ui/panel/search/SearchPanel.java index 27c01a5c..75516378 100644 --- a/source/net/sourceforge/filebot/ui/panel/search/SearchPanel.java +++ b/source/net/sourceforge/filebot/ui/panel/search/SearchPanel.java @@ -326,7 +326,7 @@ public class SearchPanel extends FileBotPanel { tabbedPane.remove(episodeList); MessageManager.showWarning(FileBotUtil.getRootCause(e).getMessage()); - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); return; } @@ -407,7 +407,7 @@ public class SearchPanel extends FileBotPanel { tabbedPane.remove(episodeList); MessageManager.showWarning(FileBotUtil.getRootCause(e).getMessage()); - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } diff --git a/source/net/sourceforge/filebot/ui/panel/sfv/SfvTable.java b/source/net/sourceforge/filebot/ui/panel/sfv/SfvTable.java index 7eb8bc72..bcfb76da 100644 --- a/source/net/sourceforge/filebot/ui/panel/sfv/SfvTable.java +++ b/source/net/sourceforge/filebot/ui/panel/sfv/SfvTable.java @@ -165,7 +165,7 @@ public class SfvTable extends JTable implements TransferablePolicySupport, Savea out.close(); } catch (FileNotFoundException e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } diff --git a/source/net/sourceforge/filebot/ui/panel/sfv/SfvTransferablePolicy.java b/source/net/sourceforge/filebot/ui/panel/sfv/SfvTransferablePolicy.java index 8bac940c..456f28fb 100644 --- a/source/net/sourceforge/filebot/ui/panel/sfv/SfvTransferablePolicy.java +++ b/source/net/sourceforge/filebot/ui/panel/sfv/SfvTransferablePolicy.java @@ -100,7 +100,7 @@ public class SfvTransferablePolicy extends MultiTransferablePolicy { in.close(); } catch (IOException e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } diff --git a/source/net/sourceforge/filebot/ui/transfer/FileTransferable.java b/source/net/sourceforge/filebot/ui/transfer/FileTransferable.java index c85a0998..2e214d94 100644 --- a/source/net/sourceforge/filebot/ui/transfer/FileTransferable.java +++ b/source/net/sourceforge/filebot/ui/transfer/FileTransferable.java @@ -9,15 +9,29 @@ import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.List; - -import net.sourceforge.filebot.ui.FileBotUtil; +import java.util.logging.Level; +import java.util.logging.Logger; public class FileTransferable implements Transferable { + public static final DataFlavor uriListFlavor = createUriListFlavor(); + + + private static DataFlavor createUriListFlavor() { + try { + return new DataFlavor("text/uri-list;class=java.lang.String"); + } catch (ClassNotFoundException e) { + // will never happen + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); + } + + return null; + } + private List files; - private DataFlavor[] supportedFlavors = { DataFlavor.javaFileListFlavor, FileBotUtil.uriListFlavor }; + private DataFlavor[] supportedFlavors = { DataFlavor.javaFileListFlavor, uriListFlavor }; public FileTransferable(File... fileArray) { @@ -38,7 +52,7 @@ public class FileTransferable implements Transferable { public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { if (flavor.isFlavorJavaFileListType()) return files; - else if (flavor.equals(FileBotUtil.uriListFlavor)) + else if (flavor.equals(uriListFlavor)) return getUriList(); else throw new UnsupportedFlavorException(flavor); @@ -74,4 +88,5 @@ public class FileTransferable implements Transferable { return false; } + } diff --git a/source/net/sourceforge/filebot/ui/transfer/SaveableExportHandler.java b/source/net/sourceforge/filebot/ui/transfer/SaveableExportHandler.java index d8dcc84a..816e76ce 100644 --- a/source/net/sourceforge/filebot/ui/transfer/SaveableExportHandler.java +++ b/source/net/sourceforge/filebot/ui/transfer/SaveableExportHandler.java @@ -40,7 +40,7 @@ public class SaveableExportHandler implements ExportHandler { } } catch (Exception e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } @@ -64,7 +64,7 @@ public class SaveableExportHandler implements ExportHandler { return new FileTransferable(temporaryFile); } catch (IOException e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } return null; diff --git a/source/net/sourceforge/filebot/ui/transferablepolicies/FileTransferablePolicy.java b/source/net/sourceforge/filebot/ui/transferablepolicies/FileTransferablePolicy.java index 70bb62c5..895f7461 100644 --- a/source/net/sourceforge/filebot/ui/transferablepolicies/FileTransferablePolicy.java +++ b/source/net/sourceforge/filebot/ui/transferablepolicies/FileTransferablePolicy.java @@ -4,7 +4,9 @@ package net.sourceforge.filebot.ui.transferablepolicies; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; import java.io.File; +import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.Collections; @@ -12,7 +14,7 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import net.sourceforge.filebot.ui.FileBotUtil; +import net.sourceforge.filebot.ui.transfer.FileTransferable; public abstract class FileTransferablePolicy extends TransferablePolicy { @@ -36,8 +38,8 @@ public abstract class FileTransferablePolicy extends TransferablePolicy { try { if (tr.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { return (List) tr.getTransferData(DataFlavor.javaFileListFlavor); - } else if (tr.isDataFlavorSupported(FileBotUtil.uriListFlavor)) { - String transferString = (String) tr.getTransferData(FileBotUtil.uriListFlavor); + } else if (tr.isDataFlavorSupported(FileTransferable.uriListFlavor)) { + String transferString = (String) tr.getTransferData(FileTransferable.uriListFlavor); String lines[] = transferString.split("\r?\n"); ArrayList files = new ArrayList(lines.length); @@ -61,9 +63,12 @@ public abstract class FileTransferablePolicy extends TransferablePolicy { return files; } - } catch (Exception e) { + } catch (UnsupportedFlavorException e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); + } catch (IOException e) { + // should not happen + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } return null; diff --git a/source/net/sourceforge/filebot/ui/transferablepolicies/TextTransferablePolicy.java b/source/net/sourceforge/filebot/ui/transferablepolicies/TextTransferablePolicy.java index bec9fb6f..8d9cf2aa 100644 --- a/source/net/sourceforge/filebot/ui/transferablepolicies/TextTransferablePolicy.java +++ b/source/net/sourceforge/filebot/ui/transferablepolicies/TextTransferablePolicy.java @@ -31,7 +31,7 @@ public abstract class TextTransferablePolicy extends TransferablePolicy { load(string); } catch (Exception e) { // should not happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } } diff --git a/source/net/sourceforge/filebot/web/AnidbClient.java b/source/net/sourceforge/filebot/web/AnidbClient.java index 13827904..50204159 100644 --- a/source/net/sourceforge/filebot/web/AnidbClient.java +++ b/source/net/sourceforge/filebot/web/AnidbClient.java @@ -48,11 +48,11 @@ public class AnidbClient extends EpisodeListClient { if (!nodes.isEmpty()) for (Node node : nodes) { - String type = XPathUtil.selectString("./TD[2]/text()", node); + String type = XPathUtil.selectString("./TD[3]/text()", node); // we only want shows if (type.equalsIgnoreCase("tv series")) { - Node titleNode = XPathUtil.selectNode("./TD[1]/A", node); + Node titleNode = XPathUtil.selectNode("./TD[2]/A", node); String title = XPathUtil.selectString("text()", titleNode); String href = XPathUtil.selectString("@href", titleNode); @@ -103,7 +103,7 @@ public class AnidbClient extends EpisodeListClient { for (Node node : nodes) { String number = XPathUtil.selectString("./TD[1]/A/text()", node); - String title = XPathUtil.selectString("./TD[2]/SPAN/text()", node); + String title = XPathUtil.selectString("./TD[2]/LABEL/text()", node); if (title.startsWith("recap")) title = title.replaceFirst("recap", ""); diff --git a/source/net/sourceforge/filebot/web/DownloadTask.java b/source/net/sourceforge/filebot/web/DownloadTask.java index a58b24dc..2a86e9a1 100644 --- a/source/net/sourceforge/filebot/web/DownloadTask.java +++ b/source/net/sourceforge/filebot/web/DownloadTask.java @@ -147,7 +147,7 @@ public class DownloadTask extends SwingWorker { sb.append(URLEncoder.encode(parameters.get(key), "UTF-8")); } catch (UnsupportedEncodingException e) { // will never happen - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.getMessage(), e); + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString()); } i++; diff --git a/source/net/sourceforge/filebot/web/MovieDescriptor.java b/source/net/sourceforge/filebot/web/MovieDescriptor.java index a5a88deb..c336bd23 100644 --- a/source/net/sourceforge/filebot/web/MovieDescriptor.java +++ b/source/net/sourceforge/filebot/web/MovieDescriptor.java @@ -8,12 +8,18 @@ import java.net.URL; public class MovieDescriptor { private String title; - private int year; - private int imdbId; + private Integer imdbId; + + private Integer year; private URL imdbUrl; - public MovieDescriptor(String title, int year, int imdbId, URL imdbUrl) { + public MovieDescriptor(String description, Integer imdbId) { + this(description, imdbId, null, null); + } + + + public MovieDescriptor(String title, Integer imdbId, Integer year, URL imdbUrl) { this.title = title; this.imdbId = imdbId; this.year = year; @@ -26,13 +32,13 @@ public class MovieDescriptor { } - public int getYear() { - return year; + public Integer getImdbId() { + return imdbId; } - public int getImdbId() { - return imdbId; + public Integer getYear() { + return year; } @@ -43,6 +49,9 @@ public class MovieDescriptor { @Override public String toString() { + if (year == null) + return title; + return String.format("%s (%d)", title, year); } } diff --git a/source/net/sourceforge/filebot/web/OpenSubtitlesClient.java b/source/net/sourceforge/filebot/web/OpenSubtitlesClient.java index ae953ba8..02536d13 100644 --- a/source/net/sourceforge/filebot/web/OpenSubtitlesClient.java +++ b/source/net/sourceforge/filebot/web/OpenSubtitlesClient.java @@ -37,7 +37,7 @@ public class OpenSubtitlesClient { * * */ - private String url = "http://dev.opensubtitles.org/xml-rpc"; + private String url = "http://www.opensubtitles.org/xml-rpc"; private String username; private String password; @@ -52,7 +52,7 @@ public class OpenSubtitlesClient { /** * Interval to call NoOperation to keep the session from expiring */ - public static final int KEEP_ALIVE_INTERVAL = 12 * 60 * 1000; // 12 minutes + private static final int KEEP_ALIVE_INTERVAL = 12 * 60 * 1000; // 12 minutes public OpenSubtitlesClient(String useragent) { @@ -93,8 +93,6 @@ public class OpenSubtitlesClient { this.username = username; this.password = password; this.language = language; - - activate(); } @@ -216,13 +214,34 @@ public class OpenSubtitlesClient { ArrayList subs = new ArrayList(); - for (Map subtitle : response.get("data")) + if (!(response.get("data") instanceof List)) + throw new XmlRpcException("Illegal response: " + response.toString()); + + // if there was an error data may not be a list + for (Map subtitle : response.get("data")) { subs.add(new OpenSubtitleDescriptor(subtitle)); + } return subs; } + @SuppressWarnings("unchecked") + public List searchMoviesOnIMDB(String query) throws XmlRpcFault { + activate(); + + Map>> response = (Map>>) invoke("SearchMoviesOnIMDB", token, query); + + ArrayList movies = new ArrayList(); + + for (Map movie : response.get("data")) { + movies.add(new MovieDescriptor(movie.get("title"), new Integer(movie.get("id")))); + } + + return movies; + } + + @SuppressWarnings("unchecked") public boolean noOperation() { try {