import streamlit as st import requests # API details API_BASE_URL = "https://bhagavad-gita3.p.rapidapi.com/v2/chapters/" HEADERS = { "X-RapidAPI-Host": "bhagavad-gita3.p.rapidapi.com", "X-RapidAPI-Key": "b69e69cfc9mshe7fec87876dcf14p113691jsn50092eeb2ef8" # Replace with your RapidAPI key } # Fetch chapters @st.cache_data def fetch_chapters(): response = requests.get(API_BASE_URL, headers=HEADERS) response.raise_for_status() return response.json() # Fetch chapter details including summary @st.cache_data def fetch_chapter_details(chapter_id): chapter_url = f"{API_BASE_URL}{chapter_id}" response = requests.get(chapter_url, headers=HEADERS) response.raise_for_status() return response.json() # Fetch verses of a specific chapter @st.cache_data def fetch_verses(chapter_id): verses_url = f"{API_BASE_URL}{chapter_id}/verses" response = requests.get(verses_url, headers=HEADERS) response.raise_for_status() return response.json() # Fetch a specific verse's details @st.cache_data def fetch_verse_details(chapter_id, verse_id): verse_url = f"{API_BASE_URL}{chapter_id}/verses/{verse_id}/" response = requests.get(verse_url, headers=HEADERS) response.raise_for_status() return response.json() # Streamlit app st.title("Bhagavad Gita") # Fetch and display chapters chapters = fetch_chapters() chapter_list = {chapter['chapter_number']: chapter['name'] for chapter in chapters} chapter_id = st.selectbox("Select Chapter", list(chapter_list.keys()), format_func=lambda x: f"Chapter {x}: {chapter_list[x]}") # Fetch and display chapter details chapter_details = fetch_chapter_details(chapter_id) chapter_summary = chapter_details['summary'] st.subheader(f"Chapter {chapter_id}: {chapter_list[chapter_id]}") st.markdown(f"**Summary:**\n\n{chapter_summary}") # Fetch and display verses verses = fetch_verses(chapter_id) verse_number = st.selectbox("Select Verse", [verse['verse_number'] for verse in verses]) selected_verse = fetch_verse_details(chapter_id, verse_number) st.markdown(f"**Sanskrit:**\n\n{selected_verse['text']}") st.markdown(f"**Translation:**\n\n{selected_verse['translation']}") # Display all verses in the selected chapter st.subheader("All Verses in this Chapter") for verse in verses: verse_details = fetch_verse_details(chapter_id, verse['verse_number']) st.markdown(f"**Verse {verse['verse_number']}**") st.markdown(f"**Sanskrit:** {verse_details['text']}") st.markdown(f"**Translation:** {verse_details['translation']}") st.markdown("---")