</> Cómo funciona
Función pura del español.
| parámetro | tipo | por defecto | qué hace |
|---|---|---|---|
refran | string | opcional | refran |
id | integer | opcional | identificador |
commons/refranario.py — un módulo con el formateador base _bean() y las funciones de cada endpoint (buscar, por lema, al azar, ficha, sinónimos, variantes, traducciones, enlaces con el diccionario, mezclador)._bean()); por eso van en una sola página.flowchart TD
MOD[("repositorio")]
_bean["_bean()"]
_get["_get()"]
sinonimos["sinonimos()"]
sinonimos --> _bean
sinonimos --> _get
_bean -. datos .-> MOD
_get -. datos .-> MOD
classDef red fill:#fde7f0,stroke:#c0397b,color:#7a1e4d;
class MOD red;# -*- coding: utf-8 -*-
"""refranario.py — diccionario de refranes españoles.
Búsqueda por texto del refrán o POR LEMA (lematizando la palabra). Cada refrán trae
significado, explicación, ejemplo, sus dos partes (para el juego «completa el refrán»),
nivel y dificultad; y sus relaciones: sinónimos, variantes y traducciones.
Un solo módulo da servicio a muchos endpoints del refranero: buscar, por lema, al azar,
ficha, sinónimos, variantes, traducciones, el cruce con el diccionario y el mezclador.
"""
_AUDIO_BASE = "https://refranes.wordkers.es/audio/"
_IMG_BASE = "https://refranes.wordkers.es/media/img/" # ilustraciones (jpg)
# […consultas al repositorio de refranes (esquema interno: refranes y sus relaciones)…]
def _bean(x):
# da forma a la respuesta pública de un refrán a partir de una fila
return {"id": x[0], "refran": x[1], "significado": x[2], "explicacion": x[3],
"comentario": x[4], "ejemplo": x[5], "parte1": x[6], "parte2": x[7],
"nivel": x[8], "dificultad": x[9], "frecuencia": x[10],
"imagen": (_IMG_BASE + str(x[11]) + ".jpg") if x[11] else None}
def _get(cur, texto=None, id=None):
# busca un refrán por id (preferente) o por su texto exacto
cur.execute(_SQL_GET_ID if id is not None else _SQL_GET_TEXTO, (id if id is not None else texto,))
return cur.fetchone()
def sinonimos(cur, texto=None, id=None):
"""Refranes equivalentes (mismo sentido)."""
row = _get(cur, texto, id)
if not row:
return {"encontrado": False, "sinonimos": []}
rid = row[0]
cur.execute(_SQL_SINONIMOS, (rid, rid, rid))
return {"encontrado": True, "refran": row[1], "sinonimos": [_bean(x) for x in cur.fetchall()]}
Llámala con el código a la vista.
curl "https://api.wordkers.com/v1/refranario/sinonimos" \
-H "X-API-Key: TU_CLAVE"