}
}
+ /**
+ * 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;
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);
}
return key;
}
- public String getTime() {
+ public long getTime() {
return time;
}
}