import streamlit as st import requests import json # URL to the JSON file JSON_URL = "https://cdn.statically.io/gh/gita/gita/main/data/verse.json" # Fetch the JSON data @st.cache_data def fetch_data(): response = requests.get(JSON_URL) response.raise_for_status() return response.json() # Streamlit app st.title("Bhagavad Gita") # Fetch and display chapters and verses data = fetch_data() # Check the type of data and parse accordingly if isinstance(data, list): chapters = {int(chapter["chapter_number"]): chapter for chapter in data} else: # Assuming data is a dictionary chapters = {int(chapter_number): details for chapter_number, details in data.items()} # Select Chapter chapter_id = st.selectbox("Select Chapter", sorted(chapters.keys()), format_func=lambda x: f"Chapter {x}") # Display chapter details if available chapter_details = chapters.get(chapter_id) if chapter_details: chapter_summary = chapter_details.get('chapter_summary', 'No summary available') st.subheader(f"Chapter {chapter_id}") st.markdown(f"**Summary:**\n\n{chapter_summary}") # Extract verses for the selected chapter if available verses = chapter_details.get('verses', []) if isinstance(verses, list) and verses: verses_dict = {verse['verse_number']: verse for verse in verses} # Select Verse verse_number = st.selectbox("Select Verse", sorted(verses_dict.keys())) # Display selected verse selected_verse = verses_dict.get(verse_number) if selected_verse: st.markdown(f"**Verse {verse_number}**") st.markdown(f"**Sanskrit:**\n\n{selected_verse['text']}") st.markdown(f"**Translation:**\n\n{selected_verse['translation']}") else: st.error("Verse details not found.") else: st.error("No verses found for this chapter or verses are not in expected format.") else: st.error("Chapter details not found.") # Display all verses in the selected chapter if available if isinstance(verses, list) and verses: st.subheader("All Verses in this Chapter") for verse_number in sorted(verses_dict.keys()): verse = verses_dict[verse_number] st.markdown(f"**Verse {verse_number}**") st.markdown(f"**Sanskrit:** {verse['text']}") st.markdown(f"**Translation:** {verse['translation']}") st.markdown("---")