Continuando con el almacenamiento de datos en cache

Va a mejor la cosa, tengo que hacer tests si o tambien porque no estoy
nada seguro si es que todo funciona como espero ya que toda llamada a la
api corresponde a una llamada a cache y descubrir si es que esta todo en
cache como se espera

Voy a terminar del modo que lo estoy haciendo y tal vez cambio esto a un
modulo de cache el cual se encargara de o obtener datos desde cache o
llamar a music brainz para suplir los datos que no puede responder
This commit is contained in:
Daniel Cortes
2020-06-10 00:02:45 -04:00
parent d62253051b
commit 65c77c679f
3 changed files with 255 additions and 135 deletions

View File

@@ -2,14 +2,16 @@
import json
import logging
import functools
import redis
import datetime
from django.http import JsonResponse
from django.conf import settings
import redis
from pygments import highlight
from pygments.lexers import JsonLexer # pylint: disable=no-name-in-module
from pygments.formatters import TerminalTrueColorFormatter # pylint: disable=no-name-in-module
from utils.ratelimit import ratelimit
_log = logging.getLogger('utils')
@@ -94,3 +96,32 @@ def get_redis_connection():
port = settings.DATA_CACHE.get('port')
db = settings.DATA_CACHE.get('db')
return redis.Redis(host=host, port=port, db=db, decode_responses=True)
def parse_date(date, default=datetime.datetime(1, 1, 1)):
"""Intenta parsear una fecha la cual le pueden faltar partes
Esta pensado para parsear fechas entregadas por musicbrainz, el cual puede entrar fechas con
año, con año y mes, o, con año, mes y dia
Si es que no puede lograrlo retornara el default definido
"""
try:
parsed = datetime.datetime.strptime(date, "%Y")
return parsed
except ValueError:
pass
try:
parsed = datetime.datetime.strptime(date, "%Y-%m")
return parsed
except ValueError:
pass
try:
parsed = datetime.datetime.strptime(date, "%Y-%m-%d")
return parsed
except ValueError:
pass
return default