OSDN Git Service

リファクタリング
authoryuki <yuki@bdf3b611-c98c-6041-8292-703d9c9adbe7>
Sat, 23 Feb 2008 05:44:49 +0000 (05:44 +0000)
committeryuki <yuki@bdf3b611-c98c-6041-8292-703d9c9adbe7>
Sat, 23 Feb 2008 05:44:49 +0000 (05:44 +0000)
git-svn-id: http://192.168.11.7/svn/repository/NicoBrowser@24 bdf3b611-c98c-6041-8292-703d9c9adbe7

src/nicobrowser/NicoHttpClient.java
src/nicobrowser/NicoTableModel.java

index c65bc46..cdd2eaf 100644 (file)
@@ -26,6 +26,7 @@ import javax.xml.parsers.DocumentBuilder;
 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;
@@ -114,6 +115,34 @@ public class NicoHttpClient extends HttpClient {
     }
 
     /**
+     * 「マイリスト登録数ランキング(本日)」の動画一覧を取得する。
+     * @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;
+    }
+
+    /**
      * マイリストに登録した動画一覧の取得.
      * 「公開」設定にしていないリストからは取得できない.
      * ログインしていなくても取得可能.
@@ -121,23 +150,16 @@ public class NicoHttpClient extends HttpClient {
      * @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) {
@@ -145,12 +167,6 @@ public class NicoHttpClient extends HttpClient {
         } finally {
             get.releaseConnection();
         }
-        List<NicoContent> contList;
-        if (list == null) {
-            contList = new ArrayList<NicoContent>();
-        } else {
-            contList = createContentsList(list);
-        }
         return contList;
     }
 
@@ -220,38 +236,14 @@ public class NicoHttpClient extends HttpClient {
 
     }
 
-    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 {
index 01e71c8..aa8345c 100644 (file)
@@ -1,7 +1,4 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
+/*$Id$*/
 package nicobrowser;
 
 import java.awt.Component;
@@ -77,8 +74,8 @@ public class NicoTableModel extends DefaultTableModel {
             addColumn(c.columnName);
         }
         TableColumn column;
-        
-        
+
+
     }
 
     @Override