exception handling for CDDB improved
This commit is contained in:
parent
ceece81b6d
commit
bbe327c73b
14
CDDB.py
14
CDDB.py
@ -69,7 +69,11 @@ def my_disc_metadata(**kwargs):
|
|||||||
|
|
||||||
def query(data_str, server_url=default_server, user=default_user, host=hostname, client_name=ROOT_LOGGER_NAME, client_version=version):
|
def query(data_str, server_url=default_server, user=default_user, host=hostname, client_name=ROOT_LOGGER_NAME, client_version=version):
|
||||||
url = f"{server_url}?cmd=cddb+query+{data_str}&hello={user}+{host}+{client_name}+{client_version}&proto={proto}"
|
url = f"{server_url}?cmd=cddb+query+{data_str}&hello={user}+{host}+{client_name}+{client_version}&proto={proto}"
|
||||||
response = urllib.request.urlopen(url)
|
try:
|
||||||
|
response = urllib.request.urlopen(url)
|
||||||
|
except urllib.error.URLError as e:
|
||||||
|
logger.warning("Error while getting data from CDDB database: %s", repr(e))
|
||||||
|
return None
|
||||||
header = response.readline().decode("utf-8").rstrip().split(" ", 3)
|
header = response.readline().decode("utf-8").rstrip().split(" ", 3)
|
||||||
header[0] = int(header[0])
|
header[0] = int(header[0])
|
||||||
|
|
||||||
@ -94,13 +98,17 @@ def cddb(disc_id, server_url=default_server, user=default_user, host=hostname, c
|
|||||||
}
|
}
|
||||||
#
|
#
|
||||||
url = f"{server_url}?cmd=cddb+read+data+{disc_id}&hello={default_server}+{hostname}+{client_name}+{client_version}&proto={proto}"
|
url = f"{server_url}?cmd=cddb+read+data+{disc_id}&hello={default_server}+{hostname}+{client_name}+{client_version}&proto={proto}"
|
||||||
response = urllib.request.urlopen(url)
|
try:
|
||||||
|
response = urllib.request.urlopen(url)
|
||||||
|
except urllib.error.URLError as e:
|
||||||
|
logger.warning("Error while getting data from CDDB database: %s", repr(e))
|
||||||
|
return None
|
||||||
|
|
||||||
header = response.readline().decode("utf-8").rstrip().split(" ", 3)
|
header = response.readline().decode("utf-8").rstrip().split(" ", 3)
|
||||||
header[0] = int(header[0])
|
header[0] = int(header[0])
|
||||||
|
|
||||||
if header[0] not in (210, ):
|
if header[0] not in (210, ):
|
||||||
logger.error("Error while reading cddb entry: \"%d - %s\"", header[1], header[3])
|
logger.error("Error while reading cddb entry: \"%s - %s\"", repr(header[1]), repr(header[3]))
|
||||||
return None
|
return None
|
||||||
data = {}
|
data = {}
|
||||||
for line in response.readlines():
|
for line in response.readlines():
|
||||||
|
@ -97,7 +97,10 @@ def get_disc_data(full_path, user_callback):
|
|||||||
for i in range(0, int(did.split('+')[1])):
|
for i in range(0, int(did.split('+')[1])):
|
||||||
data["track_%02d" % (i + 1)] = None
|
data["track_%02d" % (i + 1)] = None
|
||||||
data = user_callback(common.CALLBACK_MAN_INPUT, data)
|
data = user_callback(common.CALLBACK_MAN_INPUT, data)
|
||||||
return media.CDDB.my_disc_metadata(**data)
|
try:
|
||||||
|
return media.CDDB.my_disc_metadata(**data)
|
||||||
|
except TypeError:
|
||||||
|
return None
|
||||||
|
|
||||||
if len(q) == 1:
|
if len(q) == 1:
|
||||||
logger.debug("Single database entry identified")
|
logger.debug("Single database entry identified")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user