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_key = f'release:{mbid}:media:{media.get("position")}:recordings'
|
||||||
recording = track.get('recording')
|
recording = track.get('recording')
|
||||||
recording_id = recording.get('id')
|
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.zadd(recording_key, {recording_id: track.get("position")})
|
||||||
redis.set(f'recording:{recording_id}', json.dumps(recording))
|
redis.set(f'recording:{recording_id}', json.dumps(recording))
|
||||||
redis.set(f'recording:{recording_id}:release', mbid)
|
redis.set(f'recording:{recording_id}:release', mbid)
|
||||||
|
|||||||
@@ -445,23 +445,27 @@ def get_recordings_of_release(mbid):
|
|||||||
medias = []
|
medias = []
|
||||||
|
|
||||||
with get_redis_connection() as redis:
|
with get_redis_connection() as redis:
|
||||||
_log.debug('Intentando obtener los recordings de la release %s', mbid)
|
_log.debug('Intentando obtener los recordings de la release %s desde redis', 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
|
|
||||||
medias_key = f'release:{mbid}:media'
|
medias_key = f'release:{mbid}:media'
|
||||||
count = redis.get(f'{medias_key}:count')
|
if medias_key in redis:
|
||||||
if count and redis.zcard(medias_key) == int(count):
|
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)]
|
medias = [json.loads(media) for media in redis.zrange(medias_key, 0, -1)]
|
||||||
for media in medias:
|
for media in medias:
|
||||||
recordings_key = f'{medias_key}:{media.get("position")}:recordings'
|
recordings_key = f'{medias_key}:{media.get("position")}:recordings'
|
||||||
recordings_id = redis.zrange(recordings_key, 0, -1)
|
if redis.zcard(recordings_key) == int(redis.get(f'{recordings_key}:count')):
|
||||||
media['recordings'] = []
|
recordings_id = redis.zrange(recordings_key, 0, -1)
|
||||||
for recording_id in recordings_id:
|
media['recordings'] = []
|
||||||
media['recordings'].append(json.loads(redis.get(f'recording:{recording_id}')))
|
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:
|
else:
|
||||||
_log.debug('La cantidad de medias de la release %s encontradas no corresponden al'
|
_log.debug('No existe %s en redis', medias_key)
|
||||||
'total registrado', mbid)
|
|
||||||
|
|
||||||
if len(medias) == 0:
|
if len(medias) == 0:
|
||||||
_log.debug('No se encontraron recordings de la release %s, se cargara con musicbrainz',
|
_log.debug('No se encontraron recordings de la release %s, se cargara con musicbrainz',
|
||||||
|
|||||||
Reference in New Issue
Block a user