From 9d0edb7b611e6d178b6a6c85cb2231df30e39d0a Mon Sep 17 00:00:00 2001 From: yuki Date: Mon, 19 Apr 2010 10:33:28 +0000 Subject: [PATCH] =?utf8?q?=E3=82=B3=E3=83=B3=E3=83=95=E3=82=A3=E3=82=B0?= =?utf8?q?=E3=81=AB=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E5=91=BD=E5=90=8D?= =?utf8?q?=E8=A6=8F=E5=89=87=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: http://192.168.11.7/svn/repository/NicoBrowser/branches/dev20100419_filename@307 bdf3b611-c98c-6041-8292-703d9c9adbe7 --- src/nicobrowser/Config.java | 11 +++- src/nicobrowser/gui/config/ConfigFrame.form | 92 ++++++++++++++++++++++++----- src/nicobrowser/gui/config/ConfigFrame.java | 69 ++++++++++++++++++---- src/nicobrowser/main/Main.java | 7 ++- 4 files changed, 148 insertions(+), 31 deletions(-) diff --git a/src/nicobrowser/Config.java b/src/nicobrowser/Config.java index 5b85c6e..6f57508 100644 --- a/src/nicobrowser/Config.java +++ b/src/nicobrowser/Config.java @@ -57,6 +57,7 @@ public final class Config { private static final File FEEDURL_FILE = new File(APP_HOME, FEEDURL_NAME); public static final String P_PATH_DB = "path.db"; public static final String P_PATH_SAVEFILE = "path.savefile"; + public static final String P_SAVEFILE_PATTERN = "savefile.pattern"; public static final String P_FILE_ENCODING = "encoding"; public static final String P_NICOVIDEO_MAIL = "nicovideo.mail"; public static final String P_NICOVIDEO_PASSWORD = "nicovideo.password"; @@ -108,6 +109,7 @@ public final class Config { updatePropertyValue(p, P_PATH_DB); updatePropertyValue(p, P_PATH_SAVEFILE); + updatePropertyValue(p, P_SAVEFILE_PATTERN); updatePropertyValue(p, P_DOWNLOAD_RETRY); updatePropertyValue(p, P_DOWNLOAD_WAIT); @@ -156,6 +158,8 @@ public final class Config { savepath.append(saveDir.getAbsolutePath().replaceAll("\\\\", "\\\\\\\\")); props.add(savepath); + props.add(P_SAVEFILE_PATTERN + "={title}"); + props.add(P_FILE_ENCODING + "=" + System.getProperty("file.encoding")); props.add(P_NICOVIDEO_MAIL + "="); @@ -228,6 +232,11 @@ public final class Config { return properties.getString(P_PATH_SAVEFILE); } + /**@return 保存ファイル名の命名規則. */ + public String fileNamePattern() { + return properties.getString(P_SAVEFILE_PATTERN, "{title}"); + } + /** @return feedurl.txtの文字エンコーディング. */ public String getEncoding() { String res = properties.getString(P_FILE_ENCODING, System.getProperty("file.encoding")); @@ -292,7 +301,7 @@ public final class Config { return FEEDURL_FILE; } - public static File getAppHome(){ + public static File getAppHome() { return APP_HOME; } } diff --git a/src/nicobrowser/gui/config/ConfigFrame.form b/src/nicobrowser/gui/config/ConfigFrame.form index f6ee04c..7b0e0af 100644 --- a/src/nicobrowser/gui/config/ConfigFrame.form +++ b/src/nicobrowser/gui/config/ConfigFrame.form @@ -8,7 +8,6 @@ - @@ -25,11 +24,20 @@ - - - - - + + + + + + + + + + + + + + @@ -41,6 +49,8 @@ + + @@ -69,8 +79,8 @@ - - + + @@ -145,8 +155,8 @@ - - + + @@ -203,8 +213,8 @@ - - + + @@ -292,7 +302,7 @@ - + @@ -348,7 +358,7 @@ - + @@ -370,5 +380,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/nicobrowser/gui/config/ConfigFrame.java b/src/nicobrowser/gui/config/ConfigFrame.java index 55f2456..0ec767c 100644 --- a/src/nicobrowser/gui/config/ConfigFrame.java +++ b/src/nicobrowser/gui/config/ConfigFrame.java @@ -83,6 +83,10 @@ public class ConfigFrame extends javax.swing.JFrame { lowDownloadCheckBox = new javax.swing.JCheckBox(); jPanel5 = new javax.swing.JPanel(); savaButton = new javax.swing.JButton(); + jPanel6 = new javax.swing.JPanel(); + jTextField1 = new javax.swing.JTextField(); + jScrollPane1 = new javax.swing.JScrollPane(); + jTextArea1 = new javax.swing.JTextArea(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("NicoBrowser - コンフィグ設定"); @@ -110,8 +114,8 @@ public class ConfigFrame extends javax.swing.JFrame { .add(feedFileLabel)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(feedFileField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 301, Short.MAX_VALUE) - .add(configFileField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 301, Short.MAX_VALUE))) + .add(feedFileField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE) + .add(configFileField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE))) .add(jPanel1Layout.createSequentialGroup() .add(jLabel5) .addContainerGap()) @@ -147,8 +151,8 @@ public class ConfigFrame extends javax.swing.JFrame { .add(passLabel)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(passField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 302, Short.MAX_VALUE) - .add(idField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 302, Short.MAX_VALUE))) + .add(passField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 377, Short.MAX_VALUE) + .add(idField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 377, Short.MAX_VALUE))) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) @@ -192,8 +196,8 @@ public class ConfigFrame extends javax.swing.JFrame { .add(jLabel3)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(org.jdesktop.layout.GroupLayout.TRAILING, dbPathField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 281, Short.MAX_VALUE) - .add(org.jdesktop.layout.GroupLayout.TRAILING, flvPathField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 281, Short.MAX_VALUE)) + .add(org.jdesktop.layout.GroupLayout.TRAILING, dbPathField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.TRAILING, flvPathField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, flvPathButton) @@ -237,7 +241,7 @@ public class ConfigFrame extends javax.swing.JFrame { .add(retrySpinner))) .add(18, 18, 18) .add(lowDownloadCheckBox) - .addContainerGap(49, Short.MAX_VALUE)) + .addContainerGap(124, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) @@ -266,7 +270,7 @@ public class ConfigFrame extends javax.swing.JFrame { jPanel5Layout.setHorizontalGroup( jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel5Layout.createSequentialGroup() - .addContainerGap(332, Short.MAX_VALUE) + .addContainerGap(407, Short.MAX_VALUE) .add(savaButton)) ); jPanel5Layout.setVerticalGroup( @@ -274,15 +278,48 @@ public class ConfigFrame extends javax.swing.JFrame { .add(savaButton) ); + jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("ファイル名規則")); + + jTextArea1.setColumns(20); + jTextArea1.setEditable(false); + jTextArea1.setLineWrap(true); + jTextArea1.setRows(5); + jTextArea1.setText("{title}: 動画タイトル\n{id}: ニコニコ動画ID\n{low}: エコノミー動画であれば\"low\"の文字列、通常動画は空文字列"); + jScrollPane1.setViewportView(jTextArea1); + + org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6); + jPanel6.setLayout(jPanel6Layout); + jPanel6Layout.setHorizontalGroup( + jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel6Layout.createSequentialGroup() + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 452, Short.MAX_VALUE) + .add(jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 452, Short.MAX_VALUE)) + .addContainerGap()) + ); + jPanel6Layout.setVerticalGroup( + jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel6Layout.createSequentialGroup() + .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 71, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + ); + org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(layout.createSequentialGroup() + .add(jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap()) + .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) @@ -293,6 +330,8 @@ public class ConfigFrame extends javax.swing.JFrame { .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) @@ -384,6 +423,10 @@ public class ConfigFrame extends javax.swing.JFrame { private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel6; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JTextArea jTextArea1; + private javax.swing.JTextField jTextField1; private javax.swing.JCheckBox lowDownloadCheckBox; private javax.swing.JPasswordField passField; private javax.swing.JLabel passLabel; diff --git a/src/nicobrowser/main/Main.java b/src/nicobrowser/main/Main.java index 8961bec..1db8ca3 100644 --- a/src/nicobrowser/main/Main.java +++ b/src/nicobrowser/main/Main.java @@ -18,6 +18,7 @@ import javax.swing.SwingUtilities; import nicobrowser.Config; import nicobrowser.GetFlvResult; import nicobrowser.Config.NicoFeed; +import nicobrowser.NamePattern; import nicobrowser.NicoHttpClient; import nicobrowser.ProgressListener; import nicobrowser.VideoInfo; @@ -188,12 +189,12 @@ public class Main { } } prevDate = Calendar.getInstance().getTime(); - File saveLocation = new File(config.getSrcSaveDir(), c.getFileName()); + File saveDir = new File(config.getSrcSaveDir()); + NamePattern np = new NamePattern(config.fileNamePattern(), c.getFileName()); log.info("ファイルを取得します: " + c.getNicoId() + " " + c.getTitle()); try { VideoInfo vi = instance.getVideoInfo(c.getNicoId()); - GetFlvResult result = instance.getFlvFile(vi, - saveLocation.getCanonicalPath(), c.getStatus(), config.needLowFile(), + GetFlvResult result = instance.getFlvFile(vi, saveDir, np, c.getStatus(), config.needLowFile(), ProgressListener.EMPTY_LISTENER); c.setAuthor(result.getAuthor()); Status status = result.getStatus(); -- 2.11.0