Files
feadulta/scripts/fetch_lectura_bolls.py

22 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""Descarga un pasaje bíblico en EN/FR/IT/PT desde bolls.life (issue #88).
NO traducir la Biblia con LLM: descargar versiones oficiales.
Edita BOOK/CH/V0/V1 y TR según el pasaje. Salida JSON {lang: html} a /tmp/lecturas_<x>.json
Traducciones usadas (carta 46956, Mateo 10,26-33): EN=DRB (católica), PT=CNBB (católica),
IT=NR06 (única moderna IT), FR=BDS. Libros bolls: Mateo=40. Ver languages.json del sitio.
"""
import json, urllib.request, re, sys
TR={"en":"DRB","fr":"BDS","it":"NR06","pt":"CNBB"}
BOOK=int(sys.argv[1]) if len(sys.argv)>1 else 40
CH=int(sys.argv[2]) if len(sys.argv)>2 else 10
V0=int(sys.argv[3]) if len(sys.argv)>3 else 26
V1=int(sys.argv[4]) if len(sys.argv)>4 else 33
def clean(t): return re.sub(r"\s+"," ",re.sub(r"<[^>]+>"," ",t)).strip()
out={}
for lang,code in TR.items():
data=json.load(urllib.request.urlopen(f"https://bolls.life/get-text/{code}/{BOOK}/{CH}/",timeout=20))
v={x["verse"]:clean(x["text"]) for x in data if V0<=x["verse"]<=V1}
out[lang]="\n".join(f'<p><sup><strong>{n}</strong></sup> {v[n]}</p>' for n in range(V0,V1+1) if n in v)
json.dump(out,open("/tmp/lecturas_fetched.json","w"),ensure_ascii=False)
print("OK ->/tmp/lecturas_fetched.json", {k:len(x) for k,x in out.items()})