diff --git a/backend/src/main/java/es/recursoscatolicos/DataInitializer.java b/backend/src/main/java/es/recursoscatolicos/DataInitializer.java index 0ed7db5..2db0062 100644 --- a/backend/src/main/java/es/recursoscatolicos/DataInitializer.java +++ b/backend/src/main/java/es/recursoscatolicos/DataInitializer.java @@ -6,9 +6,11 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import es.recursoscatolicos.model.CalendarioLiturgico; import es.recursoscatolicos.model.Grupo; import es.recursoscatolicos.model.Parroquia; +import es.recursoscatolicos.model.VersoBiblico; import es.recursoscatolicos.repository.CalendarioLiturgicoRepository; import es.recursoscatolicos.repository.GrupoRepository; import es.recursoscatolicos.repository.ParroquiaRepository; +import es.recursoscatolicos.repository.VersoBiblicoRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; @@ -25,11 +27,38 @@ public class DataInitializer implements CommandLineRunner { private final ParroquiaRepository parroquiaRepository; private final GrupoRepository grupoRepository; private final CalendarioLiturgicoRepository calendarioRepository; + private final VersoBiblicoRepository versoBiblicoRepository; @Override public void run(String... args) throws Exception { cargarParroquias(); cargarCalendario(); + cargarVersosBiblicos(); + } + + private void cargarVersosBiblicos() throws Exception { + if (versoBiblicoRepository.count() > 0) return; + + log.info("Cargando versos bíblicos (Salmos)..."); + + ObjectMapper mapper = new ObjectMapper(); + + // Estructura del JSON: [{"numero": 1, "texto": "..."}, ...] + List> salmos = mapper.readValue( + new ClassPathResource("salmos.json").getInputStream(), + new TypeReference<>() {} + ); + + List versos = salmos.stream().map(s -> { + VersoBiblico v = new VersoBiblico(); + v.setFuente("Salmos"); + v.setNumero(((Number) s.get("numero")).intValue()); + v.setTexto((String) s.get("texto")); + return v; + }).toList(); + + versoBiblicoRepository.saveAll(versos); + log.info("Versos bíblicos cargados: {} salmos.", versos.size()); } private void cargarParroquias() { diff --git a/backend/src/main/java/es/recursoscatolicos/controller/VersoBiblicoController.java b/backend/src/main/java/es/recursoscatolicos/controller/VersoBiblicoController.java new file mode 100644 index 0000000..2f8da92 --- /dev/null +++ b/backend/src/main/java/es/recursoscatolicos/controller/VersoBiblicoController.java @@ -0,0 +1,42 @@ +package es.recursoscatolicos.controller; + +import es.recursoscatolicos.model.VersoBiblico; +import es.recursoscatolicos.repository.VersoBiblicoRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.PageRequest; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDate; + +@RestController +@RequestMapping("/versos") +@RequiredArgsConstructor +public class VersoBiblicoController { + + private final VersoBiblicoRepository repo; + + /** + * Devuelve el verso bíblico del día. + * La selección se basa en el día del año (1-365) módulo el total de versos, + * lo que garantiza que cada día salga un verso diferente rotando el ciclo. + */ + @GetMapping("/hoy") + public ResponseEntity hoy() { + long total = repo.count(); + if (total == 0) return ResponseEntity.notFound().build(); + + LocalDate hoy = LocalDate.now(); + int diaDelAnio = hoy.getDayOfYear(); + int indice = (int) (diaDelAnio % total); + + return repo.findAllByOrderByIdAsc(PageRequest.of(indice, 1)) + .getContent() + .stream() + .findFirst() + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } +} diff --git a/backend/src/main/java/es/recursoscatolicos/model/VersoBiblico.java b/backend/src/main/java/es/recursoscatolicos/model/VersoBiblico.java new file mode 100644 index 0000000..f9d1345 --- /dev/null +++ b/backend/src/main/java/es/recursoscatolicos/model/VersoBiblico.java @@ -0,0 +1,27 @@ +package es.recursoscatolicos.model; + +import jakarta.persistence.*; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "versos_biblicos") +@Data +@NoArgsConstructor +public class VersoBiblico { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + /** Nombre del libro: "Salmos", "Proverbios", etc. */ + @Column(nullable = false, length = 100) + private String fuente; + + /** Número de capítulo/salmo dentro del libro. */ + @Column(nullable = false) + private Integer numero; + + @Column(nullable = false, length = 1000) + private String texto; +} diff --git a/backend/src/main/java/es/recursoscatolicos/repository/VersoBiblicoRepository.java b/backend/src/main/java/es/recursoscatolicos/repository/VersoBiblicoRepository.java new file mode 100644 index 0000000..8063aa6 --- /dev/null +++ b/backend/src/main/java/es/recursoscatolicos/repository/VersoBiblicoRepository.java @@ -0,0 +1,12 @@ +package es.recursoscatolicos.repository; + +import es.recursoscatolicos.model.VersoBiblico; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface VersoBiblicoRepository extends JpaRepository { + + /** Devuelve una página de versos ordenados por id (para seleccionar por índice). */ + Page findAllByOrderByIdAsc(Pageable pageable); +} diff --git a/backend/src/main/java/es/recursoscatolicos/security/SecurityConfig.java b/backend/src/main/java/es/recursoscatolicos/security/SecurityConfig.java index 8bd60b5..8bfb65b 100644 --- a/backend/src/main/java/es/recursoscatolicos/security/SecurityConfig.java +++ b/backend/src/main/java/es/recursoscatolicos/security/SecurityConfig.java @@ -44,6 +44,7 @@ public class SecurityConfig { .requestMatchers("/auth/**").permitAll() .requestMatchers(HttpMethod.GET, "/parroquias/**").permitAll() .requestMatchers(HttpMethod.GET, "/calendario/**").permitAll() + .requestMatchers(HttpMethod.GET, "/versos/**").permitAll() .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() .anyRequest().authenticated() ) diff --git a/backend/src/main/resources/salmos.json b/backend/src/main/resources/salmos.json new file mode 100644 index 0000000..0308b5c --- /dev/null +++ b/backend/src/main/resources/salmos.json @@ -0,0 +1,152 @@ +[ + { "numero": 1, "texto": "Bienaventurado el hombre que no sigue el consejo de los malvados... es como árbol plantado junto a corrientes de agua." }, + { "numero": 2, "texto": "Tú eres mi hijo; yo te he engendrado hoy. Pídeme, y te daré en herencia las naciones." }, + { "numero": 3, "texto": "Tú, Señor, eres mi escudo, mi gloria, el que levanta mi cabeza." }, + { "numero": 4, "texto": "En paz me acostaré y asimismo dormiré, porque solo tú, Señor, me haces vivir confiado." }, + { "numero": 5, "texto": "Escucha, oh Señor, mis palabras; considera mi gemir. Atiende a la voz de mi clamor." }, + { "numero": 6, "texto": "Señor, no me reprendas en tu furor, ni me castigues con tu ira. Ten misericordia de mí." }, + { "numero": 7, "texto": "Mi escudo está en Dios, que salva a los rectos de corazón." }, + { "numero": 8, "texto": "¡Oh Señor, Señor nuestro, cuán glorioso es tu nombre en toda la tierra!" }, + { "numero": 9, "texto": "Te alabaré, Señor, con todo mi corazón; contaré todas tus maravillas." }, + { "numero": 10, "texto": "Tú ves la pena y el dolor para recogerlos en tus manos; a ti se acoge el desamparado." }, + { "numero": 11, "texto": "En el Señor me refugio. ¿Cómo decís a mi alma: Escapa cual ave al monte?" }, + { "numero": 12, "texto": "Las palabras del Señor son palabras limpias, plata refinada en horno de tierra." }, + { "numero": 13, "texto": "¿Hasta cuándo, Señor? ¿Me olvidarás para siempre? Yo en tu misericordia he confiado." }, + { "numero": 14, "texto": "Dice el necio en su corazón: No hay Dios. El Señor mira desde los cielos sobre los hijos de los hombres." }, + { "numero": 15, "texto": "Señor, ¿quién habitará en tu tabernáculo? El que anda en integridad y hace justicia." }, + { "numero": 16, "texto": "Protégeme, Dios mío, porque en ti me refugio. Tú eres mi bien, nada hay fuera de ti." }, + { "numero": 17, "texto": "Guárdame como a la niña de tus ojos; escóndeme bajo la sombra de tus alas." }, + { "numero": 18, "texto": "Te amo, Señor, fortaleza mía. El Señor es mi roca, mi fortaleza y mi libertador." }, + { "numero": 19, "texto": "Los cielos cuentan la gloria de Dios, y el firmamento anuncia la obra de sus manos." }, + { "numero": 20, "texto": "Que el Señor te responda en el día de la angustia; que el nombre del Dios de Jacob te defienda." }, + { "numero": 21, "texto": "El rey se alegra en tu poder, Señor; y en tu salvación, ¡cuánto se regocija!" }, + { "numero": 22, "texto": "Dios mío, Dios mío, ¿por qué me has abandonado? Pero tú eres santo, tú que habitas entre las alabanzas." }, + { "numero": 23, "texto": "El Señor es mi pastor, nada me falta. En verdes pastos me hace descansar." }, + { "numero": 24, "texto": "Del Señor es la tierra y su plenitud; el mundo, y los que en él habitan." }, + { "numero": 25, "texto": "A ti, Señor, levanto mi alma. Dios mío, en ti confío; no sea yo avergonzado." }, + { "numero": 26, "texto": "Júzgame, oh Señor, porque yo en mi integridad he andado; he confiado en el Señor sin titubear." }, + { "numero": 27, "texto": "El Señor es mi luz y mi salvación; ¿a quién temeré? El Señor es la fortaleza de mi vida." }, + { "numero": 28, "texto": "A ti clamaré, oh Señor, roca mía; no te desentiendas de mí." }, + { "numero": 29, "texto": "Tributad al Señor, oh hijos de los poderosos, dad al Señor la gloria y el poder." }, + { "numero": 30, "texto": "Te exaltaré, Señor, porque me has levantado. Señor Dios mío, a ti clamé, y me sanaste." }, + { "numero": 31, "texto": "En ti, Señor, me he refugiado; no sea yo avergonzado jamás. En tu mano encomiendo mi espíritu." }, + { "numero": 32, "texto": "Bienaventurado aquel cuya transgresión ha sido perdonada, y cubierto su pecado." }, + { "numero": 33, "texto": "Alegraos, oh justos, en el Señor; en los íntegros es hermosa la alabanza." }, + { "numero": 34, "texto": "Bendeciré al Señor en todo tiempo; su alabanza estará siempre en mi boca." }, + { "numero": 35, "texto": "Disputa, oh Señor, con los que contra mí disputan; pelea contra los que me combaten." }, + { "numero": 36, "texto": "Señor, hasta los cielos llega tu misericordia, y tu fidelidad alcanza a las nubes." }, + { "numero": 37, "texto": "Confía en el Señor, y haz el bien; deléitate asimismo en el Señor, y él te concederá las peticiones de tu corazón." }, + { "numero": 38, "texto": "Señor, no me reprendas en tu furor. Mi corazón late apresuradamente, me faltan las fuerzas." }, + { "numero": 39, "texto": "Yo dije: Atenderé a mis caminos, para no pecar con mi lengua. Hazme saber, Señor, mi fin." }, + { "numero": 40, "texto": "Pacientemente esperé al Señor, y él se inclinó a mí, y oyó mi clamor." }, + { "numero": 41, "texto": "Bienaventurado el que piensa en el pobre; en el día malo lo librará el Señor." }, + { "numero": 42, "texto": "Como el ciervo brama por las corrientes de las aguas, así clama por ti, oh Dios, el alma mía." }, + { "numero": 43, "texto": "Júzgame, oh Dios, y defiende mi causa; envíame tu luz y tu verdad, que ellas me guíen." }, + { "numero": 44, "texto": "Con nuestros oídos hemos oído, oh Dios, nuestros padres nos han contado la obra que hiciste en sus días." }, + { "numero": 45, "texto": "Rebosa mi corazón palabra buena; mi lengua es pluma de escribiente muy ligero." }, + { "numero": 46, "texto": "Dios es nuestro amparo y fortaleza, nuestro pronto auxilio en las tribulaciones." }, + { "numero": 47, "texto": "Pueblos todos, batid las manos; aclamad a Dios con voz de júbilo." }, + { "numero": 48, "texto": "Grande es el Señor, y digno de ser en gran manera alabado en la ciudad de nuestro Dios." }, + { "numero": 49, "texto": "Oíd esto, pueblos todos; escuchad, habitantes todos del mundo. El hombre no permanecerá en su honra." }, + { "numero": 50, "texto": "El Dios de dioses, el Señor, ha hablado; del nacimiento del sol hasta donde se pone." }, + { "numero": 51, "texto": "Ten piedad de mí, oh Dios, conforme a tu misericordia. Crea en mí un corazón puro." }, + { "numero": 52, "texto": "Yo estoy como olivo verde en la casa de Dios; en la misericordia de Dios confío eternamente." }, + { "numero": 53, "texto": "Dijo el necio en su corazón: No hay Dios. Dios desde los cielos miró sobre los hijos de los hombres." }, + { "numero": 54, "texto": "Oh Dios, sálvame por tu nombre, y con tu poder defiéndeme. Dios es el que me ayuda." }, + { "numero": 55, "texto": "Escucha, oh Dios, mi oración. ¡Quién me diese alas como de paloma! Volaría yo, y descansaría." }, + { "numero": 56, "texto": "En Dios alabaré su palabra; en Dios he confiado; no temeré lo que pueda hacerme el hombre." }, + { "numero": 57, "texto": "Ten misericordia de mí, oh Dios; porque en ti ha confiado mi alma. Bajo la sombra de tus alas me refugiaré." }, + { "numero": 58, "texto": "Ciertamente hay un Dios que juzga en la tierra. ¿Habláis rectamente, oh poderosos?" }, + { "numero": 59, "texto": "Líbrame de mis enemigos, Dios mío; ponme a salvo de los que contra mí se levantan." }, + { "numero": 60, "texto": "Oh Dios, tú nos has desechado, nos quebrantaste. Danos socorro contra el enemigo." }, + { "numero": 61, "texto": "Oye, oh Dios, mi clamor; a mi oración atiende. Desde el cabo de la tierra clamaré a ti." }, + { "numero": 62, "texto": "En Dios solamente descansa mi alma; de él viene mi salvación. Él solamente es mi roca." }, + { "numero": 63, "texto": "Dios, Dios mío eres tú; de madrugada te buscaré; mi alma tiene sed de ti." }, + { "numero": 64, "texto": "Escucha, oh Dios, la voz de mi queja; guarda mi vida del miedo del enemigo." }, + { "numero": 65, "texto": "A ti te pertenece la alabanza en Sion, oh Dios. Tú oyes la oración; a ti vendrá toda carne." }, + { "numero": 66, "texto": "Aclamad a Dios con alegría, toda la tierra; cantad la gloria de su nombre." }, + { "numero": 67, "texto": "Dios tenga misericordia de nosotros, y nos bendiga; haga resplandecer su rostro sobre nosotros." }, + { "numero": 68, "texto": "Levántese Dios, sean esparcidos sus enemigos. Cantad a Dios, cantad salmos a su nombre." }, + { "numero": 69, "texto": "Sálvame, oh Dios, porque las aguas han entrado hasta el alma. Estoy hundido en cieno profundo." }, + { "numero": 70, "texto": "Oh Dios, acude a librarme; apresúrate, oh Señor, a socorrerme." }, + { "numero": 71, "texto": "En ti, oh Señor, me he refugiado; no sea yo avergonzado jamás. Sé para mí una roca de refugio." }, + { "numero": 72, "texto": "Oh Dios, da tus juicios al rey. Él juzgará a tu pueblo con justicia y a tus pobres con juicio." }, + { "numero": 73, "texto": "Ciertamente es bueno Dios a Israel, a los limpios de corazón. Pero yo, por poco resbalaron mis pasos." }, + { "numero": 74, "texto": "¿Por qué, oh Dios, nos has desechado para siempre? Acuérdate de tu congregación." }, + { "numero": 75, "texto": "Gracias te damos, oh Dios; tu nombre está cercano; los hombres cuentan tus maravillas." }, + { "numero": 76, "texto": "Dios es conocido en Judá; en Israel es grande su nombre. Tú, temible eres tú." }, + { "numero": 77, "texto": "Con mi voz clamé a Dios, y él me escuchó. Recordaba yo a Dios, y me conmovía." }, + { "numero": 78, "texto": "Escucha, pueblo mío, mi ley; inclinad vuestro oído a las palabras de mi boca. Hablaré parábolas." }, + { "numero": 79, "texto": "Oh Dios, vinieron las naciones a tu heredad; han profanado tu santo templo." }, + { "numero": 80, "texto": "Oh Pastor de Israel, escucha; tú que pastoreas como a ovejas a José. Haznos volver, oh Dios." }, + { "numero": 81, "texto": "Cantad con gozo a Dios, fortaleza nuestra; al Dios de Jacob aclamad con júbilo." }, + { "numero": 82, "texto": "Dios preside en la reunión de los dioses; en medio de los dioses juzga: ¿Hasta cuándo juzgaréis injustamente?" }, + { "numero": 83, "texto": "Oh Dios, no guardes silencio; no calles, oh Dios, ni te estés quieto." }, + { "numero": 84, "texto": "¡Cuán amables son tus moradas, oh Señor de los ejércitos! Anhela mi alma los atrios del Señor." }, + { "numero": 85, "texto": "Fuiste propicio a tu tierra, oh Señor; restauraste la cautividad de Jacob." }, + { "numero": 86, "texto": "Inclina, oh Señor, tu oído, y escúchame, porque estoy pobre y necesitado. Guarda mi alma." }, + { "numero": 87, "texto": "Su cimiento está en los montes santos. Ama el Señor las puertas de Sion más que todas las moradas de Jacob." }, + { "numero": 88, "texto": "Oh Señor, Dios de mi salvación, día y noche clamo delante de ti. Llegue mi oración a tu presencia." }, + { "numero": 89, "texto": "Las misericordias del Señor cantaré eternamente; de generación en generación haré notar tu fidelidad." }, + { "numero": 90, "texto": "Señor, tú nos has sido refugio de generación en generación. Enséñanos a contar nuestros días." }, + { "numero": 91, "texto": "El que habita al abrigo del Altísimo morará bajo la sombra del Omnipotente. Diré yo al Señor: Esperanza mía." }, + { "numero": 92, "texto": "Bueno es alabarte, oh Señor, y cantar salmos a tu nombre, oh Altísimo; anunciar por la mañana tu misericordia." }, + { "numero": 93, "texto": "El Señor reina; se vistió de magnificencia. Firmó también el mundo, que no se moverá." }, + { "numero": 94, "texto": "Dios de las venganzas, Señor, resplandece. ¿Hasta cuándo los impíos se gloriarán?" }, + { "numero": 95, "texto": "Venid, aclamemos alegremente al Señor; cantemos con júbilo a la roca de nuestra salvación." }, + { "numero": 96, "texto": "Cantad al Señor cántico nuevo; cantad al Señor, toda la tierra. Decid entre las naciones: El Señor reina." }, + { "numero": 97, "texto": "El Señor reina; regocíjese la tierra. Nubes y oscuridad hay alrededor de él; justicia y juicio son el cimiento de su trono." }, + { "numero": 98, "texto": "Cantad al Señor cántico nuevo, porque ha hecho maravillas; su diestra lo ha salvado." }, + { "numero": 99, "texto": "El Señor reina; temblarán los pueblos. Exaltad al Señor nuestro Dios, y postraos ante el estrado de sus pies." }, + { "numero": 100, "texto": "Cantad alegres a Dios, toda la tierra. Servid al Señor con alegría; venid ante su presencia con regocijo." }, + { "numero": 101, "texto": "Misericordia y juicio cantaré; a ti cantaré yo, Señor. Entenderé el camino de la perfección." }, + { "numero": 102, "texto": "Señor, escucha mi oración, y llegue mi clamor a ti. No escondas de mí tu rostro en el día de mi angustia." }, + { "numero": 103, "texto": "Bendice, alma mía, al Señor, y bendiga todo mi ser su santo nombre. Él es quien perdona todas tus iniquidades." }, + { "numero": 104, "texto": "Bendice, alma mía, al Señor. Señor Dios mío, mucho te has engrandecido; te has vestido de gloria y de magnificencia." }, + { "numero": 105, "texto": "Alabad al Señor, invocad su nombre; haced sabidas sus obras en los pueblos. Acordaos de las maravillas que él ha hecho." }, + { "numero": 106, "texto": "Aleluya. Alabad al Señor, porque él es bueno; porque para siempre es su misericordia." }, + { "numero": 107, "texto": "Alabad al Señor, porque él es bueno. Digan lo los redimidos del Señor, los que ha rescatado del poder del enemigo." }, + { "numero": 108, "texto": "Mi corazón está dispuesto, oh Dios; cantaré y entonaré salmos. Despierta, salterio y arpa." }, + { "numero": 109, "texto": "Oh Dios de mi alabanza, no calles. Porque boca de impío y boca de engañador se han abierto contra mí." }, + { "numero": 110, "texto": "Dijo el Señor a mi Señor: Siéntate a mi diestra, hasta que ponga a tus enemigos por estrado de tus pies." }, + { "numero": 111, "texto": "Alabaré al Señor con todo mi corazón. Las obras del Señor son grandes, buscadas por todos los que las quieren." }, + { "numero": 112, "texto": "Bienaventurado el hombre que teme al Señor, y en sus mandamientos se deleita en gran manera." }, + { "numero": 113, "texto": "Alabad, siervos del Señor, alabad el nombre del Señor. Sea el nombre del Señor bendito desde ahora y para siempre." }, + { "numero": 114, "texto": "Cuando salió Israel de Egipto, la casa de Jacob de un pueblo de lengua extraña, el mar lo vio, y huyó." }, + { "numero": 115, "texto": "No a nosotros, oh Señor, no a nosotros, sino a tu nombre da gloria, por tu misericordia, por tu verdad." }, + { "numero": 116, "texto": "Amo al Señor, pues ha oído mi voz y mis súplicas. ¿Qué pagaré al Señor por todos sus beneficios?" }, + { "numero": 117, "texto": "Alabad al Señor, naciones todas; pueblos todos, alabadle. Porque ha engrandecido sobre nosotros su misericordia." }, + { "numero": 118, "texto": "Alabad al Señor, porque él es bueno. La piedra que desecharon los edificadores ha venido a ser cabeza del ángulo." }, + { "numero": 119, "texto": "Bienaventurados los perfectos de camino, los que andan en la ley del Señor. Lámpara es a mis pies tu palabra." }, + { "numero": 120, "texto": "A la hora de mi angustia clamé al Señor, y él me respondió. Libra mi alma, oh Señor, del labio mentiroso." }, + { "numero": 121, "texto": "Alzaré mis ojos a los montes; ¿de dónde vendrá mi socorro? Mi socorro viene del Señor, que hizo los cielos y la tierra." }, + { "numero": 122, "texto": "Yo me alegré con los que me decían: A la casa del Señor iremos. Nuestros pies estuvieron dentro de tus puertas, oh Jerusalén." }, + { "numero": 123, "texto": "A ti levanté mis ojos, a ti que habitas en los cielos. Como los ojos de los siervos miran a la mano de sus señores." }, + { "numero": 124, "texto": "A no haber estado el Señor con nosotros, cuando se levantaron contra nosotros los hombres, vivos nos habrían tragado." }, + { "numero": 125, "texto": "Los que confían en el Señor son como el monte de Sion, que no se mueve, sino que permanece para siempre." }, + { "numero": 126, "texto": "Cuando el Señor hiciere volver la cautividad de Sion, seremos como los que sueñan. Los que sembraron con lágrimas, con regocijo segarán." }, + { "numero": 127, "texto": "Si el Señor no edificare la casa, en vano trabajan los que la edifican. Herencia del Señor son los hijos." }, + { "numero": 128, "texto": "Bienaventurado todo aquel que teme al Señor, que anda en sus caminos. Comerás del trabajo de tus manos." }, + { "numero": 129, "texto": "Mucho me han angustiado desde mi juventud, puede decir ahora Israel; mas no prevalecieron contra mí." }, + { "numero": 130, "texto": "De lo profundo, oh Señor, a ti clamo. Señor, oye mi voz. Si tú, Señor, miraras los pecados, ¿quién se mantendría?" }, + { "numero": 131, "texto": "Señor, no se ha envanecido mi corazón, ni mis ojos se enaltecieron. He sosegado y acallado mi alma." }, + { "numero": 132, "texto": "Acuérdate, oh Señor, de David, y de toda su aflicción. No entraré en la morada de mi casa hasta hallar lugar para el Señor." }, + { "numero": 133, "texto": "¡Mirad cuán bueno y cuán delicioso es habitar los hermanos juntos en armonía!" }, + { "numero": 134, "texto": "He aquí, bendecid al Señor, todos los siervos del Señor, los que en la casa del Señor estáis por las noches." }, + { "numero": 135, "texto": "Alabad el nombre del Señor; alabadle, siervos del Señor. Porque yo sé que el Señor es grande." }, + { "numero": 136, "texto": "Alabad al Señor, porque él es bueno; porque para siempre es su misericordia. Al que hizo los cielos con inteligencia." }, + { "numero": 137, "texto": "Junto a los ríos de Babilonia, allí nos sentábamos, y aun llorábamos, acordándonos de Sion." }, + { "numero": 138, "texto": "Te alabaré con todo mi corazón. El Señor cumplirá su propósito en mí; tu misericordia, oh Señor, es para siempre." }, + { "numero": 139, "texto": "Oh Señor, tú me has examinado y conocido. Tú has conocido mi sentarme y mi levantarme; has entendido desde lejos mis pensamientos." }, + { "numero": 140, "texto": "Líbrame, oh Señor, del hombre malo; guárdame de hombres violentos. Yo sé que el Señor tomará a su cargo la causa del afligido." }, + { "numero": 141, "texto": "Señor, a ti he clamado; apresúrate a mí. Sea mi oración delante de ti como el incienso." }, + { "numero": 142, "texto": "Con mi voz clamaré al Señor; con mi voz pediré al Señor misericordia. Delante de él expondré mi queja." }, + { "numero": 143, "texto": "Oh Señor, oye mi oración, escucha mis ruegos por tu verdad. No entres en juicio con tu siervo." }, + { "numero": 144, "texto": "Bendito sea el Señor, mi roca, quien adiestra mis manos para la batalla, y mis dedos para la guerra." }, + { "numero": 145, "texto": "Te exaltaré, mi Dios, mi Rey, y bendeciré tu nombre por los siglos de los siglos. Grande es el Señor." }, + { "numero": 146, "texto": "Alaba, alma mía, al Señor. Alabaré al Señor en mi vida; cantaré salmos a mi Dios mientras viva." }, + { "numero": 147, "texto": "Alabad al Señor, porque es bueno cantar salmos a nuestro Dios. Él sana a los quebrantados de corazón." }, + { "numero": 148, "texto": "Alabad al Señor desde los cielos; alabadle en las alturas. Alabadle, sol y luna; alabadle, todas las lucientes estrellas." }, + { "numero": 149, "texto": "Cantad al Señor cántico nuevo; su alabanza sea en la congregación de los santos. Alégrese Israel en su Hacedor." }, + { "numero": 150, "texto": "Todo lo que respira alabe al Señor. Aleluya. Alabadle en su santuario; alabadle en la magnificencia de su firmamento." } +] \ No newline at end of file diff --git a/frontend/js/codigo.js b/frontend/js/codigo.js index 265a273..f61fdc0 100644 --- a/frontend/js/codigo.js +++ b/frontend/js/codigo.js @@ -47,7 +47,6 @@ function inicializarVariables() { ============================================ */ async function visualizarSalmo() { - // Buscamos el elemento directamente para evitar fallos de referencia global const salmoElem = document.getElementById('salmo-pcpal'); if (!salmoElem) { @@ -56,23 +55,13 @@ async function visualizarSalmo() { } try { - const res = await fetch('data/salmos.json'); + const res = await fetch(`${API_BASE}/versos/hoy`); if (!res.ok) throw new Error("Error en fetch"); - - const listaSalmos = await res.json(); - // Cálculo del día del año corregido - const hoy = new Date(); - const inicioAnio = new Date(hoy.getFullYear(), 0, 0); - const dif = hoy - inicioAnio; - const diaDelAnio = Math.floor(dif / (1000 * 60 * 60 * 24)); - - // Obtenemos el salmo (0 a 149) - const indiceHoy = diaDelAnio % listaSalmos.length; - const salmoDeHoy = listaSalmos[indiceHoy]; + const verso = await res.json(); - if (salmoDeHoy && salmoDeHoy.texto) { - salmoElem.textContent = salmoDeHoy.texto; + if (verso && verso.texto) { + salmoElem.innerHTML = `${verso.texto}
— ${verso.fuente} ${verso.numero}`; } else { salmoElem.textContent = "El Señor es mi pastor, nada me falta."; }