From 41709aebaffbd0e2a9ea906ef18ea29fd2e3a779 Mon Sep 17 00:00:00 2001 From: yukihane Date: Wed, 21 Sep 2011 15:46:01 +0900 Subject: [PATCH] =?utf8?q?optional=20thread=E3=81=AB=E5=AF=BE=E3=81=99?= =?utf8?q?=E3=82=8B=E3=83=91=E3=83=A9=E3=83=A1=E3=83=BC=E3=82=BF=E7=94=9F?= =?utf8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/nicobrowser/NicoHttpClient.java | 43 +++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/src/nicobrowser/NicoHttpClient.java b/src/nicobrowser/NicoHttpClient.java index 687d649..6e20682 100644 --- a/src/nicobrowser/NicoHttpClient.java +++ b/src/nicobrowser/NicoHttpClient.java @@ -48,6 +48,7 @@ import nicobrowser.util.Result; import nicobrowser.util.Util; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.http.Header; @@ -963,6 +964,11 @@ public class NicoHttpClient { } } + private enum ThreadType { + + MAIN, OPTIONAL; + } + /** * 2011/2/3 以降のコメント表示仕様に基づいた取得パラメータ生成. * @param vi ビデオ情報. @@ -971,9 +977,25 @@ public class NicoHttpClient { * @return 生成されたパラメータ. */ private String createCommentDownloadParameter(VideoInfo vi, WayBackInfo wayback, int commentNum) { + final String mainParam = createCommentDownloadParameter(ThreadType.MAIN, vi, wayback, commentNum); + final String optionParam; + if (StringUtils.isNotEmpty(vi.getOptionalThreadId())) { + optionParam = createCommentDownloadParameter(ThreadType.OPTIONAL, vi, wayback, commentNum); + } else { + optionParam = ""; + } + return mainParam + optionParam; + } + + private String createCommentDownloadParameter(ThreadType threadType, VideoInfo vi, WayBackInfo wayback, + int commentNum) { final Map threadKey = vi.getKeyMap(); final Map th = new HashMap(); - th.put("thread", vi.getThreadId()); + if (threadType != ThreadType.OPTIONAL) { + th.put("thread", vi.getThreadId()); + } else { + th.put("thread", vi.getOptionalThreadId()); + } th.put("version", "20090904"); th.put("user_id", vi.getUserId()); if (wayback != null) { @@ -1026,10 +1048,27 @@ public class NicoHttpClient { */ private String createCommentDownloadParameter20101222(VideoInfo vi, boolean isTcomm, WayBackInfo wayback, int commentNum) { + final String mainParam = createCommentDownloadParameter20101222(ThreadType.MAIN, vi, isTcomm, wayback, + commentNum); + final String optionParam; + if (StringUtils.isNotEmpty(vi.getOptionalThreadId())) { + optionParam = createCommentDownloadParameter20101222(ThreadType.OPTIONAL, vi, isTcomm, wayback, commentNum); + } else { + optionParam = ""; + } + return mainParam + optionParam; + } + + private String createCommentDownloadParameter20101222(ThreadType threadType, VideoInfo vi, boolean isTcomm, + WayBackInfo wayback, int commentNum) { final Map params = new HashMap(); params.put(VideoInfo.KEY_USER_ID, vi.getUserId()); - params.put("thread", vi.getThreadId()); + if (threadType != ThreadType.OPTIONAL) { + params.put("thread", vi.getThreadId()); + } else { + params.put("thread", vi.getOptionalThreadId()); + } params.put("version", "20061206"); final int resFrom = (commentNum > 0) ? commentNum : vi.getResFrom(); -- 2.11.0