OSDN Git Service

重複コードの共通化
authoryukihane <yukihane.feather@gmail.com>
Wed, 21 Sep 2011 05:25:32 +0000 (14:25 +0900)
committeryukihane <yukihane.feather@gmail.com>
Wed, 21 Sep 2011 07:57:09 +0000 (16:57 +0900)
src/nicobrowser/NicoHttpClient.java

index 6e20682..c27666f 100644 (file)
@@ -970,6 +970,23 @@ public class NicoHttpClient {
     }
 
     /**
+     * threadタグとthread_leavesタグに共通な情報を設定します.
+     */
+    private static void putCommonPair(final Map<String, String> map, ThreadType threadType,
+            VideoInfo vi, WayBackInfo wayback) {
+        if (threadType != ThreadType.OPTIONAL) {
+            map.put("thread", vi.getThreadId());
+        } else {
+            map.put("thread", vi.getOptionalThreadId());
+        }
+        map.put("user_id", vi.getUserId());
+        if (wayback != null) {
+            map.put("waybackkey", wayback.getKey());
+            map.put("when", Long.toString(wayback.getTime()));
+        }
+    }
+
+    /**
      * 2011/2/3 以降のコメント表示仕様に基づいた取得パラメータ生成.
      * @param vi ビデオ情報.
      * @param wayback 過去ログ情報. 過去ログ取得でない場合はnull.
@@ -991,25 +1008,11 @@ public class NicoHttpClient {
             int commentNum) {
         final Map<String, String> threadKey = vi.getKeyMap();
         final Map<String, String> th = new HashMap<String, String>();
-        if (threadType != ThreadType.OPTIONAL) {
-            th.put("thread", vi.getThreadId());
-        } else {
-            th.put("thread", vi.getOptionalThreadId());
-        }
+        putCommonPair(th, threadType, vi, wayback);
         th.put("version", "20090904");
-        th.put("user_id", vi.getUserId());
-        if (wayback != null) {
-            th.put("waybackkey", wayback.getKey());
-            th.put("when", Long.toString(wayback.getTime()));
-        }
 
         final Map<String, String> leaf = new HashMap<String, String>();
-        leaf.put("thread", vi.getThreadId());
-        leaf.put("user_id", vi.getUserId());
-        if (wayback != null) {
-            leaf.put("waybackkey", wayback.getKey());
-            leaf.put("when", Long.toString(wayback.getTime()));
-        }
+        putCommonPair(leaf, threadType, vi, wayback);
 
         final int minutes = (int) Math.ceil(vi.getVideoLength() / 60.0);
         // 1分当たり100件のコメントを表示するのは720分未満の動画だけで, それ以上は調整が入るらしい
@@ -1063,12 +1066,7 @@ public class NicoHttpClient {
             WayBackInfo wayback, int commentNum) {
         final Map<String, String> params = new HashMap<String, String>();
 
-        params.put(VideoInfo.KEY_USER_ID, vi.getUserId());
-        if (threadType != ThreadType.OPTIONAL) {
-            params.put("thread", vi.getThreadId());
-        } else {
-            params.put("thread", vi.getOptionalThreadId());
-        }
+        putCommonPair(params, threadType, vi, wayback);
         params.put("version", "20061206");
 
         final int resFrom = (commentNum > 0) ? commentNum : vi.getResFrom();
@@ -1078,11 +1076,6 @@ public class NicoHttpClient {
             params.put("fork", "1");
         }
 
-        if (wayback != null) {
-            params.put("waybackkey", wayback.getKey());
-            params.put("when", Long.toString(wayback.getTime()));
-        }
-
         final StringBuilder str = new StringBuilder();
         str.append("<thread");