import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
}
/**
+ * 「マイリスト登録数ランキング(本日)」の動画一覧を取得する。
+ * @return 動画一覧.
+ */
+ List<NicoContent> loadMyListDaily() {
+ List<NicoContent> list = new ArrayList<NicoContent>();
+ String url = new String("http://zio3.net/nicoRss/Handler.ashx");
+ Logger.getLogger(NicoHttpClient.class.getName()).log(Level.INFO, "全動画サイトのマイリスト登録数ランキング(本日)[全体] : " + url);
+
+ GetMethod get = new GetMethod(url);
+
+ try {
+ int statusCode = executeMethod(get);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(get.getResponseBodyAsStream(), "UTF-8"));
+ // BOMを読み捨て
+ reader.skip(1);
+ list = getNicoContents(reader);
+ } catch (FeedException ex) {
+ Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IOException ex) {
+ Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
+ } finally {
+ get.releaseConnection();
+ }
+
+ return list;
+ }
+
+ /**
* マイリストに登録した動画一覧の取得.
* 「公開」設定にしていないリストからは取得できない.
* ログインしていなくても取得可能.
* @return 動画一覧.
*/
public List<NicoContent> loadMyList(String listNo) {
- List<SyndEntryImpl> list = null;
+ List<NicoContent> contList = new ArrayList<NicoContent>();
String url = new String(MY_LIST_PAGE_HEADER + listNo + "?rss=atom");
- Logger.getLogger(NicoHttpClient.class.getName()).
- log(Level.INFO, "マイリストURL: " + url);
+ Logger.getLogger(NicoHttpClient.class.getName()).log(Level.INFO, "マイリストURL: " + url);
GetMethod get = new GetMethod(url);
try {
int statusCode = executeMethod(get);
Reader reader = new BufferedReader(new InputStreamReader(get.getResponseBodyAsStream(), "UTF-8"));
- SyndFeedInput input = new SyndFeedInput();
- SyndFeed feed = input.build(reader);
-
- list = (List<SyndEntryImpl>) feed.getEntries();
-
- } catch (IllegalArgumentException ex) {
- Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
+ contList = getNicoContents(reader);
} catch (FeedException ex) {
Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
} finally {
get.releaseConnection();
}
- List<NicoContent> contList;
- if (list == null) {
- contList = new ArrayList<NicoContent>();
- } else {
- contList = createContentsList(list);
- }
return contList;
}
}
- List<NicoContent> loadMyListDaily() {
+ private List<NicoContent> getNicoContents(Reader reader) throws FeedException {
List<SyndEntryImpl> list = null;
- String url = new String("http://zio3.net/nicoRss/Handler.ashx");
- Logger.getLogger(NicoHttpClient.class.getName()).
- log(Level.INFO, "全動画サイトのマイリスト登録数ランキング(本日)[全体] : " + url);
-
- GetMethod get = new GetMethod(url);
-
- try {
- int statusCode = executeMethod(get);
- BufferedReader reader = new BufferedReader(new InputStreamReader(get.getResponseBodyAsStream(), "UTF-8"));
- //TODO 本来ならInputStreamに対して3byte読み捨てるべきだろう
- reader.skip(1);
- SyndFeedInput input = new SyndFeedInput();
- SyndFeed feed = input.build(reader);
+ SyndFeedInput input = new SyndFeedInput();
+ SyndFeed feed = input.build(reader);
- list = (List<SyndEntryImpl>) feed.getEntries();
+ list = (List<SyndEntryImpl>) feed.getEntries();
- } catch (ParsingFeedException ex) {
- Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
- Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex.getColumnNumber());
- Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex.getLineNumber());
- } catch (IllegalArgumentException ex) {
- Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
- } catch (FeedException ex) {
- Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IOException ex) {
- Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
- } finally {
- get.releaseConnection();
- }
- List<NicoContent> contList = null;
+ List<NicoContent> contList;
if (list == null) {
contList = new ArrayList<NicoContent>();
} else {