OSDN Git Service

過去ログ取得パラメータをAPIに投げるフォーマットに設定する
authoryukihane <yukihane.feather@gmail.com>
Fri, 19 Aug 2011 00:04:40 +0000 (09:04 +0900)
committeryukihane <yukihane.feather@gmail.com>
Fri, 19 Aug 2011 00:04:40 +0000 (09:04 +0900)
src/nicobrowser/NicoHttpClient.java
src/nicobrowser/WayBackInfo.java

index d9121fa..ac07d9b 100644 (file)
@@ -850,19 +850,35 @@ public class NicoHttpClient {
         }
     }
 
+    /**
+     * 2011/2/3 以降のコメント表示仕様に基づいた取得パラメータ生成.
+     * @param vi ビデオ情報.
+     * @param wayback 過去ログ情報. 過去ログ取得でないバイはnull.
+     * @param commentNum コメント取得数. ビデオ再生時間に応じたデフォルト値を用いる場合にはnull.
+     * @return 生成されたパラメータ.
+     */
     private String createCommendDownloadParameter(VideoInfo vi, WayBackInfo wayback, Integer commentNum) {
         final Map<String, String> threadKey = vi.getKeyMap();
         final Map<String, String> th = new HashMap<String, String>();
         th.put("thread", vi.getThreadId());
         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()));
+        }
 
         final int length = (int) Math.ceil(vi.getVideoLength() / 60.0);
         // 1分当たり100件のコメントを表示するのは720分未満の動画だけで, それ以上は調整が入るらしい
+        // (どんなに長くても1動画当たり720*100件が最大。それを超える場合には1分当たりの件数を削減する)
         final int max100perMin = 720;
         final int perMin = (length < max100perMin) ? 100 : (max100perMin * 100) / length;
 
index 5171650..a6ebec6 100644 (file)
@@ -7,10 +7,10 @@ package nicobrowser;
 public class WayBackInfo {
 
     private final String key;
-    private final String time;
+    private final long time;
 
-    public WayBackInfo(String key, String time) {
-        if (key == null || time == null) {
+    public WayBackInfo(String key, long time) {
+        if (key == null || time <= 0) {
             throw new IllegalArgumentException(" key: " + key + ", time: " + time);
         }
 
@@ -22,7 +22,7 @@ public class WayBackInfo {
         return key;
     }
 
-    public String getTime() {
+    public long getTime() {
         return time;
     }
 }