OSDN Git Service

cookie取得メソッド追加, アクセス修飾子をリファクタリング.
authoryukihane <yukihane.feather@gmail.com>
Sat, 17 Sep 2011 11:37:00 +0000 (20:37 +0900)
committeryukihane <yukihane.feather@gmail.com>
Sat, 17 Sep 2011 11:37:00 +0000 (20:37 +0900)
frontend/src/saccubus/net/Cookie.java
frontend/src/saccubus/net/CookieDefault.java
frontend/src/saccubus/net/CookieWinChromium.java
frontend/src/saccubus/net/CookieWinCrome.java
frontend/src/saccubus/net/CookieWinFirefox3.java
frontend/src/saccubus/net/CookieWinMsIe.java
frontend/src/saccubus/net/CookieWinOpera.java

index 3cdfe5f..598e999 100644 (file)
@@ -2,10 +2,14 @@ package saccubus.net;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * ニコニコ動画のクッキーを扱うための基本クラスです.
@@ -13,6 +17,7 @@ import org.apache.commons.lang.StringUtils;
  */
 public abstract class Cookie {
 
+    private static final Logger logger = LoggerFactory.getLogger(Cookie.class);
     private static final Pattern USER_SESSION_PATTERN = Pattern.compile("user_session_[\\d_]+");
 
     public enum BrowserType {
@@ -39,11 +44,28 @@ public abstract class Cookie {
     }
 
     /**
+     * cookieをmapで返します.
+     * @return cookie.
+     */
+    public Map<String, String> get() {
+        final Map<String, String> map = new HashMap<>();
+        try {
+            final String userSessionStr = getNicoUserSession();
+            if (StringUtils.isNotEmpty(userSessionStr)) {
+                map.put("user_session", userSessionStr);
+            }
+        } catch (IOException ex) {
+            logger.warn("cookieファイル読み込み失敗", ex);
+        }
+        return map;
+    }
+
+    /**
      * ニコニコ動画ユーザセッション文字列を取得します.
      * @return ユーザセッション文字列. 無ければ空文字列.
      * @throws IOException cookie読み込み中のエラー.
      */
-    public abstract String getNicoUserSession() throws IOException;
+    protected abstract String getNicoUserSession() throws IOException;
 
     /**
      * クッキーファイルを見つけて user_session を返す.
index 45ca35f..deabf50 100644 (file)
@@ -7,16 +7,16 @@ import java.io.IOException;
  * 指定されたディレクトリのcookieを扱います.
  * @author yuki
  */
-public class CookieDefault extends Cookie {
+class CookieDefault extends Cookie {
 
     private final File fileOrDir;
 
-    public CookieDefault(File fileOrDir) {
+    CookieDefault(File fileOrDir) {
         this.fileOrDir = fileOrDir;
     }
 
     @Override
-    public String getNicoUserSession() throws IOException {
+    protected String getNicoUserSession() throws IOException {
         return getUserSession("UTF-8", fileOrDir);
     }
 }
index 05fc2ad..d385b80 100644 (file)
@@ -9,12 +9,12 @@ import org.apache.commons.lang.StringUtils;
  * @author orz (saccubus)
  * @author yuki
  */
-public class CookieWinChromium extends Cookie {
+class CookieWinChromium extends Cookie {
 
     private static final String CHROMIUM_PATH = "/Chromium/User Data/Default/Cookies";
 
     @Override
-    public String getNicoUserSession() throws IOException {
+    protected String getNicoUserSession() throws IOException {
         final String localAppData = System.getenv("LOCALAPPDATA");
         if (StringUtils.isNotEmpty(localAppData)) {
             // Win7 32bit
index 70369e3..66e1bea 100644 (file)
@@ -16,7 +16,7 @@ import org.slf4j.LoggerFactory;
  * @author orz (saccubus)
  * @author yuki
  */
-public class CookieWinCrome extends Cookie {
+class CookieWinCrome extends Cookie {
 
     private static final Logger logger = LoggerFactory.getLogger(CookieWinCrome.class);
     private static final String COOKIE_PATH = "/Google/Chrome/User Data/Default/Cookies";
@@ -27,7 +27,7 @@ public class CookieWinCrome extends Cookie {
      *  @return user_session
      */
     @Override
-    public String getNicoUserSession() throws IOException {
+    protected String getNicoUserSession() throws IOException {
         final List<File> alters = new ArrayList<>();
 
         // Win7
index 77bda06..2bfb77c 100644 (file)
@@ -13,7 +13,7 @@ import org.apache.commons.lang.StringUtils;
  * @deprecated ユーザプロファイルを切り替える設定を行っている場合にはおそらくうまく動きません.
  */
 @Deprecated
-public class CookieWinFirefox3 extends Cookie {
+class CookieWinFirefox3 extends Cookie {
 
     /**
      * Firefox3 から user_session を取得。
@@ -21,7 +21,7 @@ public class CookieWinFirefox3 extends Cookie {
      * @throws IOException 取得失敗.
      */
     @Override
-    public String getNicoUserSession() throws IOException {
+    protected String getNicoUserSession() throws IOException {
         final String appData = System.getenv("APPDATA");
         if (StringUtils.isNotEmpty(appData)) {
             File sqlist_filename = new File(appData + "/Mozilla/Firefox/Profiles/cookies.sqlite");
index 4b77b08..26e9388 100644 (file)
@@ -13,7 +13,7 @@ import org.apache.commons.lang.StringUtils;
  * @author orz (saccubus)
  * @author yuki
  */
-public class CookieWinMsIe extends Cookie {
+class CookieWinMsIe extends Cookie {
 
     /** <p>
      *  IE7/IE8/IE9 から user_session を取得。<br/>
@@ -22,7 +22,7 @@ public class CookieWinMsIe extends Cookie {
      *  @return user_session
      */
     @Override
-    public String getNicoUserSession() throws IOException {
+    protected String getNicoUserSession() throws IOException {
 
         final String userProfile = System.getenv("USERPROFILE");
 
index c2c7166..d320f66 100644 (file)
@@ -11,7 +11,7 @@ import org.apache.commons.lang.StringUtils;
  * @author orz (saccubus)
  * @author yuki
  */
-public class CookieWinOpera extends Cookie {
+class CookieWinOpera extends Cookie {
 
     /**
      * Opera から user_session を取得。
@@ -19,7 +19,7 @@ public class CookieWinOpera extends Cookie {
      * @throws IOException 取得失敗.
      */
     @Override
-    public String getNicoUserSession() throws IOException {
+    protected String getNicoUserSession() throws IOException {
         final String appData = System.getenv("APPDATA");
 
         if (StringUtils.isNotEmpty(appData)) {