nzbToMedia/libs/win/jaraco/windows/msie.py
2022-11-29 00:44:47 -05:00

56 lines
1.5 KiB
Python

"""cookies.py
Cookie support utilities
"""
import os
import itertools
class CookieMonster(object):
"Read cookies out of a user's IE cookies file"
@property
def cookie_dir(self):
import _winreg as winreg
key = winreg.OpenKeyEx(
winreg.HKEY_CURRENT_USER,
'Software' r'\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',
)
cookie_dir, type = winreg.QueryValueEx(key, 'Cookies')
return cookie_dir
def entries(self, filename):
with open(os.path.join(self.cookie_dir, filename)) as cookie_file:
while True:
entry = itertools.takewhile(self.is_not_cookie_delimiter, cookie_file)
entry = [item.rstrip() for item in entry]
if not entry:
break
cookie = self.make_cookie(*entry)
yield cookie
@staticmethod
def is_not_cookie_delimiter(s):
return s != '*\n'
@staticmethod
def make_cookie(
key, value, domain, flags, ExpireLow, ExpireHigh, CreateLow, CreateHigh
):
expires = (int(ExpireHigh) << 32) | int(ExpireLow)
created = (int(CreateHigh) << 32) | int(CreateLow)
flags = int(flags)
domain, sep, path = domain.partition('/')
path = '/' + path
return dict(
key=key,
value=value,
domain=domain,
flags=flags,
expires=expires,
created=created,
path=path,
)