exception handling for CDDB improved

This commit is contained in:
Dirk Alders 2025-08-04 19:32:52 +02:00
parent ceece81b6d
commit bbe327c73b
2 changed files with 15 additions and 4 deletions

14
CDDB.py
View File

@ -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):
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[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}"
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[0] = int(header[0])
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
data = {}
for line in response.readlines():

View File

@ -97,7 +97,10 @@ def get_disc_data(full_path, user_callback):
for i in range(0, int(did.split('+')[1])):
data["track_%02d" % (i + 1)] = None
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:
logger.debug("Single database entry identified")