Arreglada recordings of release
This commit is contained in:
@@ -137,6 +137,7 @@ def load_entities_of_release(release):
|
||||
recording_key = f'release:{mbid}:media:{media.get("position")}:recordings'
|
||||
recording = track.get('recording')
|
||||
recording_id = recording.get('id')
|
||||
redis.set(f'{recording_key}:count', media.get('track_count'))
|
||||
redis.zadd(recording_key, {recording_id: track.get("position")})
|
||||
redis.set(f'recording:{recording_id}', json.dumps(recording))
|
||||
redis.set(f'recording:{recording_id}:release', mbid)
|
||||
|
||||
@@ -445,23 +445,27 @@ def get_recordings_of_release(mbid):
|
||||
medias = []
|
||||
|
||||
with get_redis_connection() as redis:
|
||||
_log.debug('Intentando obtener los recordings de la release %s', mbid)
|
||||
# TODO hay que checkear si es que medias_keys existe
|
||||
# TODO si es que hay medias y estan todas las que se esperan, se tiene que checkear que
|
||||
# esten todos sus hijos
|
||||
_log.debug('Intentando obtener los recordings de la release %s desde redis', mbid)
|
||||
medias_key = f'release:{mbid}:media'
|
||||
count = redis.get(f'{medias_key}:count')
|
||||
if count and redis.zcard(medias_key) == int(count):
|
||||
medias = [json.loads(media) for media in redis.zrange(medias_key, 0, -1)]
|
||||
for media in medias:
|
||||
recordings_key = f'{medias_key}:{media.get("position")}:recordings'
|
||||
recordings_id = redis.zrange(recordings_key, 0, -1)
|
||||
media['recordings'] = []
|
||||
for recording_id in recordings_id:
|
||||
media['recordings'].append(json.loads(redis.get(f'recording:{recording_id}')))
|
||||
if medias_key in redis:
|
||||
if redis.zcard(medias_key) == int(redis.get(f'{medias_key}:count')):
|
||||
medias = [json.loads(media) for media in redis.zrange(medias_key, 0, -1)]
|
||||
for media in medias:
|
||||
recordings_key = f'{medias_key}:{media.get("position")}:recordings'
|
||||
if redis.zcard(recordings_key) == int(redis.get(f'{recordings_key}:count')):
|
||||
recordings_id = redis.zrange(recordings_key, 0, -1)
|
||||
media['recordings'] = []
|
||||
for recording_id in recordings_id:
|
||||
recording = json.loads(redis.get(f'recording:{recording_id}'))
|
||||
media['recordings'].append(recording)
|
||||
else:
|
||||
_log.debug('No estan todas las recordings de la release %s que deberian '
|
||||
'estar', mbid)
|
||||
else:
|
||||
_log.debug('La cantidad de medias de la release %s encontradas no corresponden al '
|
||||
'total registrado', mbid)
|
||||
else:
|
||||
_log.debug('La cantidad de medias de la release %s encontradas no corresponden al'
|
||||
'total registrado', mbid)
|
||||
_log.debug('No existe %s en redis', medias_key)
|
||||
|
||||
if len(medias) == 0:
|
||||
_log.debug('No se encontraron recordings de la release %s, se cargara con musicbrainz',
|
||||
|
||||
Reference in New Issue
Block a user