Arreglada recordings of release

This commit is contained in:
Daniel Cortes
2020-06-11 05:57:13 -04:00
parent 1aed9351ab
commit a1a74de82d
2 changed files with 20 additions and 15 deletions

View File

@@ -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)

View File

@@ -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',