|
@ -1141,6 +1141,8 @@ class YoutubeDLHTTPSHandler(compat_urllib_request.HTTPSHandler): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class YoutubeDLCookieJar(compat_cookiejar.MozillaCookieJar): |
|
|
class YoutubeDLCookieJar(compat_cookiejar.MozillaCookieJar): |
|
|
|
|
|
_HTTPONLY_PREFIX = '#HttpOnly_' |
|
|
|
|
|
|
|
|
def save(self, filename=None, ignore_discard=False, ignore_expires=False): |
|
|
def save(self, filename=None, ignore_discard=False, ignore_expires=False): |
|
|
# Store session cookies with `expires` set to 0 instead of an empty |
|
|
# Store session cookies with `expires` set to 0 instead of an empty |
|
|
# string |
|
|
# string |
|
@ -1150,7 +1152,21 @@ class YoutubeDLCookieJar(compat_cookiejar.MozillaCookieJar): |
|
|
compat_cookiejar.MozillaCookieJar.save(self, filename, ignore_discard, ignore_expires) |
|
|
compat_cookiejar.MozillaCookieJar.save(self, filename, ignore_discard, ignore_expires) |
|
|
|
|
|
|
|
|
def load(self, filename=None, ignore_discard=False, ignore_expires=False): |
|
|
def load(self, filename=None, ignore_discard=False, ignore_expires=False): |
|
|
compat_cookiejar.MozillaCookieJar.load(self, filename, ignore_discard, ignore_expires) |
|
|
|
|
|
|
|
|
"""Load cookies from a file.""" |
|
|
|
|
|
if filename is None: |
|
|
|
|
|
if self.filename is not None: |
|
|
|
|
|
filename = self.filename |
|
|
|
|
|
else: |
|
|
|
|
|
raise ValueError(compat_cookiejar.MISSING_FILENAME_TEXT) |
|
|
|
|
|
|
|
|
|
|
|
cf = io.StringIO() |
|
|
|
|
|
with open(filename) as f: |
|
|
|
|
|
for line in f: |
|
|
|
|
|
if line.startswith(self._HTTPONLY_PREFIX): |
|
|
|
|
|
line = line[len(self._HTTPONLY_PREFIX):] |
|
|
|
|
|
cf.write(compat_str(line)) |
|
|
|
|
|
cf.seek(0) |
|
|
|
|
|
self._really_load(cf, filename, ignore_discard, ignore_expires) |
|
|
# Session cookies are denoted by either `expires` field set to |
|
|
# Session cookies are denoted by either `expires` field set to |
|
|
# an empty string or 0. MozillaCookieJar only recognizes the former |
|
|
# an empty string or 0. MozillaCookieJar only recognizes the former |
|
|
# (see [1]). So we need force the latter to be recognized as session |
|
|
# (see [1]). So we need force the latter to be recognized as session |
|
|