From cbb9b9dc8d212a5e339d7fd5ccd2fd4662af0642 Mon Sep 17 00:00:00 2001 From: yuki Date: Tue, 1 Dec 2009 05:58:29 +0000 Subject: [PATCH] =?utf8?q?dev20091201=5Fcontrol=5Flow=5Fdownload=20r250-r2?= =?utf8?q?60=E3=83=9E=E3=83=BC=E3=82=B8=E3=80=82=20=E3=82=A8=E3=82=B3?= =?utf8?q?=E3=83=8E=E3=83=9F=E3=83=BC=E5=8B=95=E7=94=BB=E3=82=92=E3=83=80?= =?utf8?q?=E3=82=A6=E3=83=B3=E3=83=AD=E3=83=BC=E3=83=89=E3=81=99=E3=82=8B?= =?utf8?q?=E3=81=8B=E3=81=A9=E3=81=86=E3=81=8B=E3=81=AE=E3=82=AA=E3=83=97?= =?utf8?q?=E3=82=B7=E3=83=A7=E3=83=B3=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C?= =?utf8?q?=E3=80=82?= 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/trunk@261 bdf3b611-c98c-6041-8292-703d9c9adbe7 --- src/nicobrowser/Config.java | 12 ++++++++++++ src/nicobrowser/NicoHttpClient.java | 19 +++++++------------ src/nicobrowser/gui/config/ConfigFrame.form | 12 ++++++++++-- src/nicobrowser/gui/config/ConfigFrame.java | 13 +++++++++++-- src/nicobrowser/main/Main.java | 3 +-- 5 files changed, 41 insertions(+), 18 deletions(-) diff --git a/src/nicobrowser/Config.java b/src/nicobrowser/Config.java index 626b51a..0400b54 100644 --- a/src/nicobrowser/Config.java +++ b/src/nicobrowser/Config.java @@ -62,9 +62,11 @@ public final class Config { public static final String P_NICOVIDEO_PASSWORD = "nicovideo.password"; public static final String P_DOWNLOAD_RETRY = "download.retry"; public static final String P_DOWNLOAD_WAIT = "download.wait"; + public static final String P_DOWNLOAD_LOW = "download.low"; public static final String P_DOWNLOAD_MYLIST = "download.mylist"; private static final int DEFAULT_MAX_RETRY = 3; private static final int DEFAULT_WAIT_TIME = 15; + private static final boolean DEFAULT_LOW_FILE = false; /** * プログラム実行に必要なコンフィグファイルを作成する. @@ -109,6 +111,7 @@ public final class Config { updatePropertyValue(p, P_DOWNLOAD_RETRY); updatePropertyValue(p, P_DOWNLOAD_WAIT); + updatePropertyValue(p, P_DOWNLOAD_LOW); updatePropertyValueArray(p, P_DOWNLOAD_MYLIST); @@ -159,6 +162,7 @@ public final class Config { props.add(P_NICOVIDEO_PASSWORD + "=s"); props.add(P_DOWNLOAD_RETRY + "=" + DEFAULT_MAX_RETRY); props.add(P_DOWNLOAD_WAIT + "=" + DEFAULT_WAIT_TIME); + props.add(P_DOWNLOAD_LOW + "=" + DEFAULT_LOW_FILE); props.add(P_DOWNLOAD_MYLIST + "="); FileUtils.writeLines(file, props); @@ -246,6 +250,14 @@ public final class Config { return properties.getInt(P_DOWNLOAD_WAIT, DEFAULT_WAIT_TIME); } + /** + * エコノミー動画をダウンロードする必要があるか. + * @return エコノミー動画もダウンロード対称にする場合はtrue. + */ + public boolean needLowFile() { + return properties.getBoolean(P_DOWNLOAD_LOW, DEFAULT_LOW_FILE); + } + public List getDownLoadMyList() { String[] res = properties.getStringArray(P_DOWNLOAD_MYLIST); return Arrays.asList(res); diff --git a/src/nicobrowser/NicoHttpClient.java b/src/nicobrowser/NicoHttpClient.java index f4fc746..733db49 100644 --- a/src/nicobrowser/NicoHttpClient.java +++ b/src/nicobrowser/NicoHttpClient.java @@ -520,11 +520,10 @@ public class NicoHttpClient extends DefaultHttpClient { * @param videoID smxxxx形式のビデオID. * @param fileName ダウンロード後のファイル名. 拡張子は別途付与されるため不要. * @param nowStatus ダウンロードしようとしている動画ファイルの, 現在のステータス. - * @param mp4ExtIsMp4 mp4ファイルの拡張子に.mp4を用いるか. falseの場合は.flvを付与する(過去のCraving Explorer互換用). * @return この処理を行った後の, 対象ファイルのステータス. * @throws java.io.IOException ファイル取得失敗. 権限の無いファイルを取得しようとした場合も. */ - public GetFlvResult getFlvFile(String videoID, String fileName, Status nowStatus, boolean mp4ExtIsMp4) throws + public GetFlvResult getFlvFile(String videoID, String fileName, Status nowStatus, boolean needLowFile) throws IOException, URISyntaxException, HttpException, InterruptedException { byte[] buffer = new byte[1024 * 32]; @@ -560,9 +559,11 @@ public class NicoHttpClient extends DefaultHttpClient { } URL url = getFlvUrl(realID); - if (nowStatus == Status.GET_LOW && url.toString().contains("low")) { - log.info("lowファイル取得済みのためスキップ" + videoID + ":" + fileName); - return new GetFlvResult(nowStatus, userName); + if (nowStatus == Status.GET_LOW || !needLowFile) { + if (url.toString().contains("low")) { + log.info("エコノミー動画のためスキップ: " + videoID + ":" + fileName); + return new GetFlvResult(nowStatus, userName); + } } get = new HttpGet(url.toURI()); @@ -576,11 +577,6 @@ public class NicoHttpClient extends DefaultHttpClient { return new GetFlvResult(Status.GET_INFO, userName); } String ext = Util.getExtention(contentType); - if (!mp4ExtIsMp4) { - if (ext.equals("mp4")) { - ext = "flv"; - } - } BufferedInputStream in = new BufferedInputStream(response.getEntity().getContent()); @@ -616,8 +612,7 @@ public class NicoHttpClient extends DefaultHttpClient { * @throws java.io.IOException ファイル取得失敗. 権限の無いファイルを取得しようとした場合も. */ public GetFlvResult getFlvFile(String videoID, String fileName) throws IOException, URISyntaxException, - HttpException, - InterruptedException { + HttpException, InterruptedException { return getFlvFile(videoID, fileName, Status.GET_INFO, true); } diff --git a/src/nicobrowser/gui/config/ConfigFrame.form b/src/nicobrowser/gui/config/ConfigFrame.form index a92a3fc..f6ee04c 100644 --- a/src/nicobrowser/gui/config/ConfigFrame.form +++ b/src/nicobrowser/gui/config/ConfigFrame.form @@ -8,7 +8,7 @@ - + @@ -290,7 +290,9 @@ - + + + @@ -300,6 +302,7 @@ + @@ -325,6 +328,11 @@ + + + + + diff --git a/src/nicobrowser/gui/config/ConfigFrame.java b/src/nicobrowser/gui/config/ConfigFrame.java index d36891d..55f2456 100644 --- a/src/nicobrowser/gui/config/ConfigFrame.java +++ b/src/nicobrowser/gui/config/ConfigFrame.java @@ -45,6 +45,7 @@ public class ConfigFrame extends javax.swing.JFrame { // 動作 waitSpinner.setValue(config.getWaitTime()); retrySpinner.setValue(config.getMaxRetry()); + lowDownloadCheckBox.setSelected(config.needLowFile()); } /** This method is called from within the constructor to @@ -79,6 +80,7 @@ public class ConfigFrame extends javax.swing.JFrame { jLabel2 = new javax.swing.JLabel(); waitSpinner = new javax.swing.JSpinner(); retrySpinner = new javax.swing.JSpinner(); + lowDownloadCheckBox = new javax.swing.JCheckBox(); jPanel5 = new javax.swing.JPanel(); savaButton = new javax.swing.JButton(); @@ -217,6 +219,8 @@ public class ConfigFrame extends javax.swing.JFrame { jLabel2.setText("失敗時リトライ回数"); + lowDownloadCheckBox.setText("エコノミー動画をダウンロードする"); + org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( @@ -231,14 +235,17 @@ public class ConfigFrame extends javax.swing.JFrame { .add(jLabel2) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(retrySpinner))) - .addContainerGap(240, Short.MAX_VALUE)) + .add(18, 18, 18) + .add(lowDownloadCheckBox) + .addContainerGap(49, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanel3Layout.createSequentialGroup() .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel1) - .add(waitSpinner, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(waitSpinner, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(lowDownloadCheckBox)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel2) @@ -314,6 +321,7 @@ public class ConfigFrame extends javax.swing.JFrame { p.setProperty(Config.P_DOWNLOAD_WAIT, waitSpinner.getValue().toString()); p.setProperty(Config.P_DOWNLOAD_RETRY, retrySpinner.getValue().toString()); + p.setProperty(Config.P_DOWNLOAD_LOW, Boolean.toString(lowDownloadCheckBox.isSelected())); try { config.updateConfigFile(p); JOptionPane.showMessageDialog(this, Config.getConfigfile().getAbsolutePath() + "\nを更新しました"); @@ -376,6 +384,7 @@ 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.JCheckBox lowDownloadCheckBox; private javax.swing.JPasswordField passField; private javax.swing.JLabel passLabel; private javax.swing.JSpinner retrySpinner; diff --git a/src/nicobrowser/main/Main.java b/src/nicobrowser/main/Main.java index ae84f1b..707fb4e 100644 --- a/src/nicobrowser/main/Main.java +++ b/src/nicobrowser/main/Main.java @@ -187,8 +187,7 @@ public class Main { log.info("ファイルを取得します: " + c.getNicoId() + " " + c.getTitle()); try { GetFlvResult result = instance.getFlvFile(c.getNicoId(), - saveLocation.getCanonicalPath(), c.getStatus(), - true); + saveLocation.getCanonicalPath(), c.getStatus(), config.needLowFile()); c.setAuthor(result.getAuthor()); Status status = result.getStatus(); c.setStatus(status); -- 2.11.0