|
#!/usr/bin/env python2.7 |
|
import os, sys |
|
import ConfigParser as cfgp |
|
import sqlite3 as sql |
|
import cookielib |
|
import pdb |
|
|
|
def getDefaultProfile(profilesIniFile): |
|
profilesCfg = cfgp.ConfigParser() |
|
profilesCfg.read(profilesIniFile) |
|
if len(profilesCfg.sections())==2: |
|
return profilesCfg.get('Profile0','Path') |
|
for i in profilesCfg.sections(): |
|
if profilesCfg.has_option(i, "Default") and \ |
|
profilesCfg.getint(i, "Default") == 1: |
|
return profilesCfg.get(i, "Path") |
|
|
|
def parseSession(cookieFile=None): |
|
cookieCon = sql.connect(cookieFile) |
|
cookieCur = cookieCon.cursor() |
|
for row in cookieCur.execute('''select value from moz_cookies where baseDomain="xunlei.com" and name="lsessionid"'''): |
|
return row[0] |
|
|
|
def writeCookie(lxCookieFile, lsessionid): |
|
cookiejar = cookielib.LWPCookieJar() |
|
cookiejar.load(lxCookieFile, ignore_discard=True, ignore_expires=True) |
|
session_ck = cookielib.Cookie(version=0, name='lx_sessionid', value=lsessionid, port=None, port_specified=False, domain='.vip.xunlei.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False) |
|
cookiejar.set_cookie(session_ck) |
|
cookiejar.save(lxCookieFile, ignore_discard=True) |
|
|
|
if __name__=='__main__': |
|
#pdb.set_trace() |
|
dirDispatch = {'posix': lambda:(os.environ['HOME'], '.mozilla'), |
|
'win32': lambda:(os.environ['APPDATA'],'Mozilla')} |
|
profileRoot, mozilla = dirDispatch[sys.platform.lower()]() |
|
profilesIniFile = os.path.join(profileRoot, mozilla, 'firefox', 'profiles.ini') |
|
profilesFolder = getDefaultProfile(profilesIniFile) |
|
if os.path.isabs('profilesFolder'): |
|
profilesPath = profilesFolder |
|
else: |
|
profilesPath = os.path.join(profileRoot, mozilla, 'firefox', profilesFolder) |
|
cookieFilePath = os.path.join(profilesPath, 'cookies.sqlite') |
|
print cookieFilePath |
|
raise RuntimeError('shit') |
|
lsessionid = parseSession(cookieFilePath) |
|
xunleiCookieFile = os.path.join(profileRoot, '.xunlei.lixian.cookies') |
|
writeCookie(xunleiCookieFile, lsessionid) |
|
|