From: yukihane Date: Sat, 17 Sep 2011 09:26:28 +0000 (+0900) Subject: Chromium Cookie処理クラス実装 X-Git-Tag: rel20110922_ver2.1.0~21^2~9 X-Git-Url: http://git.sourceforge.jp/view?p=coroid%2Finqubus.git;a=commitdiff_plain;h=188796abc97a1548491e3a3079b80c6f92767943 Chromium Cookie処理クラス実装 --- diff --git a/frontend/src/saccubus/net/BrowserInfo.java b/frontend/src/saccubus/net/BrowserInfo.java deleted file mode 100644 index 65ae534..0000000 --- a/frontend/src/saccubus/net/BrowserInfo.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Inspired from Nicorank by rankingloid 2008 - 2009 - */ -package saccubus.net; - -import java.util.Arrays; - -/** -/** - *

- * タイトル: さきゅばす - *

- * - *

- * 説明: ニコニコ動画の動画をコメントつきで保存 - *

- * - * @version 1.22r3e - * @author orz - * - */ -public class BrowserInfo { - /* - * [DllImport("wininet.dll")] - * private extern static bool InternetGetCookie(string url, string name, StringBuilder data, ref uint size); - * - * shuold use NLink.win32 - */ - - - /**

- * Chromium から user_session を取得。エラーが起こった場合、例外を投げずに空文字を返す - *

- * @return user_session - */ - private String GetUserSesionChromium() { - String user_session = ""; - String cookie_file = ""; - String chromium = "\\Chromium\\User Data\\Default\\Cookies"; - try { - String local_Appdir = System.getenv("LOCALAPPDATA"); - if (local_Appdir != null && !local_Appdir.isEmpty()) { - // Win7 32bit - cookie_file = local_Appdir + chromium; - if (Path.isFile(cookie_file)) { - String dataStr = Path.ReadAllText(cookie_file, "UTF-8"); - user_session = CutUserSession(dataStr, cookie_file); - return user_session; - } - } - String profile_dir = System.getenv("USERPROFILE"); - if (profile_dir != null && !profile_dir.isEmpty()) { - // XP 32bit - cookie_file = profile_dir - + "\\Local Settings\\Application Data" + chromium; - if (Path.isFile(cookie_file)) { - String dataStr = Path.ReadAllText(cookie_file, "UTF-8"); - user_session = CutUserSession(dataStr, cookie_file); - return user_session; - } - } - return user_session; - } catch (Exception e) { - e.printStackTrace(); - return user_session; - } - } - -} diff --git a/frontend/src/saccubus/net/Cookie.java b/frontend/src/saccubus/net/Cookie.java index a57f65e..fd142af 100644 --- a/frontend/src/saccubus/net/Cookie.java +++ b/frontend/src/saccubus/net/Cookie.java @@ -17,20 +17,24 @@ public abstract class Cookie { public enum BrowserType { - NONE, MSIE, IE6, FIREFOX, CHROME, - OPERA, CHROMIUM, OTHER + MSIE, FIREFOX, CHROME, CHROMIUM, OPERA, OTHER } - public static Cookie create(BrowserType type) { + public static Cookie create(BrowserType type, String dir) { switch (type) { - case CHROME: - return new CookieWinCrome(); - case FIREFOX: - return new CookieWinFirefox4(); case MSIE: return new CookieWinMsIe(); + case FIREFOX: + return new CookieWinFirefox4(); + case CHROME: + return new CookieWinCrome(); + case CHROMIUM: + return new CookieWinChromium(); + case OPERA: + return new CookieWinOpera(); default: - throw new UnsupportedOperationException(); + final File f = new File(dir); + return new CookieDefault(f); } } diff --git a/frontend/src/saccubus/net/CookieWinChromium.java b/frontend/src/saccubus/net/CookieWinChromium.java new file mode 100644 index 0000000..c208c41 --- /dev/null +++ b/frontend/src/saccubus/net/CookieWinChromium.java @@ -0,0 +1,38 @@ +package saccubus.net; + +import java.io.File; +import java.io.IOException; +import org.apache.commons.lang.StringUtils; + +/** + * Windows Chromium用. + * @author yuki + */ +public class CookieWinChromium extends Cookie { + + private static final String CHROMIUM_PATH = "\\Chromium\\User Data\\Default\\Cookies"; + + @Override + public String getUserSessionString() throws IOException { + final String localAppData = System.getenv("LOCALAPPDATA"); + if (StringUtils.isNotEmpty(localAppData)) { + // Win7 32bit + final File cookieFile = new File(localAppData + CHROMIUM_PATH); + if (cookieFile.isFile()) { + return getUserSession("UTF-8", cookieFile); + } + } + + final String userProfile = System.getenv("USERPROFILE"); + if (StringUtils.isNotEmpty(userProfile)) { + // XP 32bit + final File cookieFile = new File(userProfile + "\\Local Settings\\Application Data" + CHROMIUM_PATH); + if (cookieFile.isFile()) { + return getUserSession("UTF-8", cookieFile); + } + } + + throw new IOException(); + + } +} diff --git a/frontend/src/saccubus/net/CookieWinOpera.java b/frontend/src/saccubus/net/CookieWinOpera.java index 7a0325b..ff69736 100644 --- a/frontend/src/saccubus/net/CookieWinOpera.java +++ b/frontend/src/saccubus/net/CookieWinOpera.java @@ -2,7 +2,6 @@ package saccubus.net; import java.io.File; import java.io.IOException; -import java.nio.file.Path; import org.apache.commons.lang.StringUtils; /**