OSDN Git Service

getWayBackKeyメソッドではwaybackkey取得のみを行うようにインタフェースを定義しなおし
authoryukihane <yukihane.feather@gmail.com>
Thu, 11 Aug 2011 02:35:27 +0000 (11:35 +0900)
committeryukihane <yukihane.feather@gmail.com>
Thu, 11 Aug 2011 07:18:40 +0000 (16:18 +0900)
(cherry picked from commit 56a076782cd214327e6752e79b6539ef8ee425a7)

Conflicts:

frontend/src/saccubus/converter/filegetter/WebFileInstanciator.java

frontend/src/saccubus/converter/filegetter/WebFileInstanciator.java
frontend/src/saccubus/net/NicoClient.java
frontend/src/saccubus/net/NicoClientImpl.java
frontend/src/yukihane/inqubus/saccubus_adapter/NicoBrowserAdapter.java

index bcda523..e53a5b9 100644 (file)
@@ -3,12 +3,14 @@ package saccubus.converter.filegetter;
 
 import java.io.IOException;
 import java.text.Normalizer;
+import org.apache.commons.lang.StringUtils;
 import saccubus.ConvertStopFlag;
 import saccubus.converter.profile.Proxy;
 import saccubus.net.CommentInfo;
 import saccubus.net.NicoClient;
 import saccubus.net.NicoClientImpl;
 import saccubus.net.VideoInfo;
+import saccubus.util.WayBackTimeParser;
 
 /**
  * 動画ファイル, コメントファイルなど必要なファイルのうち, 1つでもダウンロード処理を必要とする場合のインスタンス化クラス.
@@ -44,7 +46,8 @@ public class WebFileInstanciator extends FileInstanciator {
             port = -1;
         }
         // TODO Implを直接newしている
-        client = new NicoClientImpl(li.getMail(), li.getPass(), stopFlag, host, port) {};
+        client = new NicoClientImpl(li.getMail(), li.getPass(), stopFlag, host, port) {
+        };
 
         if (!client.isLoggedIn()) {
             throw new IOException("ログインに失敗");
@@ -52,7 +55,14 @@ public class WebFileInstanciator extends FileInstanciator {
 
         try {
             videoInfo = client.getVideoInfo(tag);
-            commentInfo = client.getWayBackKey(videoInfo, time);
+            if (StringUtils.isNotBlank(time)) {
+                System.out.print("Setting wayback time...");
+                final String waybacktime = WayBackTimeParser.parse(time);
+                String waybackkey = client.getWayBackKey(videoInfo);
+                commentInfo = new CommentInfo(waybackkey, waybacktime);
+            }else{
+                commentInfo = CommentInfo.DEFAULT;
+            }
 
         } catch (IOException ex) {
             throw new IOException(tag + "の情報の取得に失敗", ex);
index 1fc2991..c54f6c8 100644 (file)
@@ -15,7 +15,11 @@ public interface NicoClient {
 
     VideoInfo getVideoInfo(String videoId) throws IOException;
 
-    CommentInfo getWayBackKey(VideoInfo vi, String time) throws IOException;
+    /**
+     * 過去ログ取得のためのキーを取得する.
+     * @param vi {@link #getVideoInfo(java.lang.String) }で取得したビデオ情報.
+     */
+    String getWayBackKey(VideoInfo vi) throws IOException;
 
     File getVideo(VideoInfo videoInfo, File file, TextProgressListener listener);
 
index a540fa0..1a808b7 100644 (file)
@@ -14,14 +14,9 @@ import java.net.InetSocketAddress;
 import java.net.Proxy;
 import java.net.URLEncoder;
 import java.net.URLDecoder;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import javax.net.ssl.HttpsURLConnection;
-import org.apache.commons.lang.StringUtils;
 import saccubus.ConvertStopFlag;
 import saccubus.util.FileUtil;
 import yukihane.Util;
@@ -325,44 +320,8 @@ public class NicoClientImpl implements NicoClient {
     }
 
     @Override
-    public CommentInfo getWayBackKey(VideoInfo vi, String time) throws IOException {
-        if (StringUtils.isBlank(time)) {
-            return CommentInfo.DEFAULT;
-        }
+    public String getWayBackKey(VideoInfo vi) throws IOException {
 
-        System.out.print("Setting wayback time...");
-        Date date = null;
-        String waybacktime = "0";
-        try {
-            final DateFormat fmt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
-            date = fmt.parse(time);
-        } catch (ParseException ex2) {
-            date = null;
-        }
-        if (date == null) {
-            try {
-                final DateFormat fmt = new SimpleDateFormat("yyyy/MM/dd HH:mm");
-                date = fmt.parse(time);
-            } catch (ParseException ex3) {
-                date = null;
-            }
-        }
-        if (date != null) {
-            waybacktime = Long.toString(date.getTime() / 1000);
-            System.out.println("ok.(" + date.toString() + "):" + waybacktime);
-        } else {
-            try {
-                long tmp_time = Long.parseLong(time);
-                waybacktime = Long.toString(tmp_time);
-                date = new Date(tmp_time * 1000);
-                System.out.println("ok.(" + date.toString() + "):"
-                        + waybacktime);
-            } catch (NumberFormatException ex4) {
-                System.out.println("ng.");
-                System.out.println("Cannot parse wayback time.");
-                throw new IOException("Cannot parse wayback time.", ex4);
-            }
-        }
         System.out.print("Getting wayback key...");
         String url = "http://flapi.nicovideo.jp/api/getwaybackkey?thread="
                 + vi.getThreadId();
@@ -407,7 +366,7 @@ public class NicoClientImpl implements NicoClient {
             throw new IOException("Cannot get wayback key.");
         }
         System.out.println("ok. key:" + waybackkey);
-        return new CommentInfo(waybackkey, waybacktime);
+        return waybackkey;
     }
 
     @Override
index b8be283..f6c1d92 100644 (file)
@@ -56,7 +56,7 @@ public class NicoBrowserAdapter implements NicoClient {
     }
 
     @Override
-    public CommentInfo getWayBackKey(VideoInfo vi, String time) throws IOException {
+    public String getWayBackKey(VideoInfo vi) throws IOException {
         throw new UnsupportedOperationException("Not supported yet.");
     }