Spaces:
Running
Running
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 | |
def fetch_chapters(): | |
response = requests.get(API_BASE_URL, headers=HEADERS) | |
response.raise_for_status() | |
return response.json() | |
# Fetch chapter details including summary | |
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 | |
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 | |
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("---") | |