def getCDDB(cddbdiscid): """ Fetch basic metadata from gnudb.org's mirror of freedb's CDDB. Freedb's official CDDB isn't used anymore because it's going to be shut down on 31/03/2020. See: https://web.archive.org/web/20200331093822/http://www.freedb.org/ See: https://hydrogenaud.io/index.php?topic=118682 :param cddbdiscid: list of id, tracks, offsets, seconds :rtype: str """ # FIXME: convert to nonblocking? try: md = freedb.perform_lookup(cddbdiscid, 'gnudb.gnudb.org', 80) logger.debug('CDDB query result: %r', md) return [item['DTITLE'] for item in md if 'DTITLE' in item] or None except ValueError as e: logger.warning("CDDB protocol error: %s", e) except IOError as e: # FIXME: for some reason errno is a str ? if e.errno == 'socket error': logger.warning("CDDB network error: %r", (e, )) else: raise return None
def getCDDB(self, cddbdiscid): """ @param cddbdiscid: list of id, tracks, offsets, seconds @rtype: str """ # FIXME: convert to nonblocking? try: md = freedb.perform_lookup(cddbdiscid, 'freedb.freedb.org', 80) logger.debug('CDDB query result: %r', md) return [item['DTITLE'] for item in md if 'DTITLE' in item] or None except IOError as e: # FIXME: for some reason errno is a str ? if e.errno == 'socket error': self._stdout.write("Warning: network error: %r\n" % (e, )) else: raise return None
def getCDDB(cddbdiscid): """ :param cddbdiscid: list of id, tracks, offsets, seconds :rtype: str """ # FIXME: convert to nonblocking? try: md = freedb.perform_lookup(cddbdiscid, 'freedb.freedb.org', 80) logger.debug('CDDB query result: %r', md) return [item['DTITLE'] for item in md if 'DTITLE' in item] or None except ValueError as e: logger.warning("CDDB protocol error: %s", e) except IOError as e: # FIXME: for some reason errno is a str ? if e.errno == 'socket error': logger.warning("CDDB network error: %r", (e, )) else: raise return None