summaryrefslogtreecommitdiffstats
path: root/gallery_dl/cookies.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/cookies.py')
-rw-r--r--gallery_dl/cookies.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/gallery_dl/cookies.py b/gallery_dl/cookies.py
index 478abb6..b4986c1 100644
--- a/gallery_dl/cookies.py
+++ b/gallery_dl/cookies.py
@@ -10,7 +10,6 @@
# https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/cookies.py
import binascii
-import contextlib
import ctypes
import logging
import os
@@ -147,7 +146,8 @@ def load_cookies_chrome(cookiejar, browser_name, profile=None,
set_cookie(Cookie(
0, name, value, None, False,
domain, bool(domain), domain.startswith("."),
- path, bool(path), secure, expires, False, None, None, {},
+ path, bool(path), secure, expires or None, False,
+ None, None, {},
))
if failed_cookies > 0:
@@ -682,7 +682,8 @@ def _get_gnome_keyring_password(browser_keyring_name):
# lists all keys and presumably searches for its key in the list.
# It appears that we must do the same.
# https://github.com/jaraco/keyring/issues/556
- with contextlib.closing(secretstorage.dbus_init()) as con:
+ con = secretstorage.dbus_init()
+ try:
col = secretstorage.get_default_collection(con)
label = browser_keyring_name + " Safe Storage"
for item in col.get_all_items():
@@ -691,6 +692,8 @@ def _get_gnome_keyring_password(browser_keyring_name):
else:
_log_error("Failed to read from GNOME keyring")
return b""
+ finally:
+ con.close()
def _get_linux_keyring_password(browser_keyring_name, keyring):
@@ -857,7 +860,7 @@ class DatabaseConnection():
def Popen_communicate(*args):
- proc = subprocess.Popen(
+ proc = util.Popen(
args, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
try:
stdout, stderr = proc.communicate()
@@ -999,6 +1002,12 @@ def _decrypt_windows_dpapi(ciphertext):
def _find_most_recently_used_file(root, filename):
+ # if the provided root points to an exact profile path
+ # check if it contains the wanted filename
+ first_choice = os.path.join(root, filename)
+ if os.path.exists(first_choice):
+ return first_choice
+
# if there are multiple browser profiles, take the most recently used one
paths = []
for curr_root, dirs, files in os.walk(root):