More libsecret exceptions handling.
This commit is contained in:
parent
3be4a1db6b
commit
b74f9c04d4
@ -830,6 +830,13 @@ class InfoExtractor(object):
|
|||||||
if self._downloader.params.get('usekeyring', False):
|
if self._downloader.params.get('usekeyring', False):
|
||||||
try:
|
try:
|
||||||
import gi
|
import gi
|
||||||
|
can_use_gi = True
|
||||||
|
except ImportError:
|
||||||
|
self._downloader.report_warning(
|
||||||
|
'Problem while processing --keyring option: cannot import gi module. Check that you have python-gobject installed.')
|
||||||
|
can_use_gi = False
|
||||||
|
if can_use_gi:
|
||||||
|
try:
|
||||||
gi.require_version('Secret', '1')
|
gi.require_version('Secret', '1')
|
||||||
from gi.repository import Secret
|
from gi.repository import Secret
|
||||||
LIBSECRET_SCHEMA = Secret.Schema.new("io.github.rg3.youtube-dl.Store",
|
LIBSECRET_SCHEMA = Secret.Schema.new("io.github.rg3.youtube-dl.Store",
|
||||||
@ -844,14 +851,18 @@ class InfoExtractor(object):
|
|||||||
secret_dict = json.loads(secret)
|
secret_dict = json.loads(secret)
|
||||||
username = secret_dict['user']
|
username = secret_dict['user']
|
||||||
password = secret_dict['pass']
|
password = secret_dict['pass']
|
||||||
|
except ValueError as err:
|
||||||
|
self._downloader.report_warning(
|
||||||
|
'Looks like libsecret is not installed. Error: %s:' % error_to_compat_str(err))
|
||||||
|
except gi.repository.GLib.GError as err:
|
||||||
|
self._downloader.report_warning(
|
||||||
|
'Something went wrong when invoking libsecret. Error: %s' % error_to_compat_str(err))
|
||||||
except KeyError as err:
|
except KeyError as err:
|
||||||
self._downloader.report_warning(
|
self._downloader.report_warning(
|
||||||
'Libsecret: %s' % error_to_compat_str(err))
|
'Libsecret: %s' % error_to_compat_str(err))
|
||||||
except json.decoder.JSONDecodeError:
|
except json.decoder.JSONDecodeError:
|
||||||
self._downloader.report_warning(
|
self._downloader.report_warning(
|
||||||
'JSON error, your JSON string in keyring is likely malformed')
|
'JSON error, your JSON string in keyring is likely malformed')
|
||||||
except ImportError:
|
|
||||||
raise ImportError('Cannot import gi module. Check that you have python-gobject installed.')
|
|
||||||
|
|
||||||
return username, password
|
return username, password
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user