From 05391da83ebc7d33d9aea70138cf1efbd5851694 Mon Sep 17 00:00:00 2001 From: yukihane Date: Sun, 18 Sep 2011 13:07:16 +0900 Subject: [PATCH] =?utf8?q?cookie=E5=87=A6=E7=90=86=E3=82=B3=E3=83=9F?= =?utf8?q?=E3=83=83=E3=83=88=E6=BC=8F=E3=82=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- frontend/src/saccubus/net/CookieWinFirefox.java | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 frontend/src/saccubus/net/CookieWinFirefox.java diff --git a/frontend/src/saccubus/net/CookieWinFirefox.java b/frontend/src/saccubus/net/CookieWinFirefox.java new file mode 100644 index 0000000..d6ec9ea --- /dev/null +++ b/frontend/src/saccubus/net/CookieWinFirefox.java @@ -0,0 +1,38 @@ +package saccubus.net; + +import java.io.File; +import java.io.IOException; +import org.apache.commons.lang.StringUtils; + +/** + * WindowsのFirefox(4以降) cookie ディレクトリを決め打ちして扱います. + * @author orz (saccubus) + * @author yuki + */ +class CookieWinFirefox extends Cookie { + + /** + * Firefox4以降から user_session を取得。 + * @return ユーザセッション文字列. + * @throws IOException 取得失敗. + */ + @Override + protected String getNicoUserSession() throws IOException { + final String appData = System.getenv("APPDATA"); + if (StringUtils.isNotEmpty(appData)) { + final File dir = new File(appData + "/Mozilla/Firefox/Profiles/"); + final File[] userLists = dir.listFiles(); + for (File profileDir : userLists) { + final File sqliteFile = new File(profileDir, "cookies.sqlite"); + if (sqliteFile.isFile()) { + final String user_session = getUserSession("US-ASCII", sqliteFile); + if (StringUtils.isNotEmpty(user_session)) { + return user_session; + } + // else continue + } + } + } + return ""; + } +} -- 2.11.0