parvalijaved commited on
Commit
42c01e2
·
verified ·
1 Parent(s): 0e42c46

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -51
app.py CHANGED
@@ -1,74 +1,48 @@
1
  import streamlit as st
2
  import requests
 
3
 
4
- # API details
5
- API_BASE_URL = "https://bhagavad-gita3.p.rapidapi.com/v2/chapters/"
6
- HEADERS = {
7
- "X-RapidAPI-Host": "bhagavad-gita3.p.rapidapi.com",
8
- "X-RapidAPI-Key": "34237ba39emsh7f807056d3b95eep184935jsnc730c8e0624d" # Replace with your RapidAPI key
9
- }
10
 
11
- # Fetch chapters
12
  @st.cache_data
13
- def fetch_chapters():
14
- response = requests.get(API_BASE_URL, headers=HEADERS)
15
- response.raise_for_status()
16
- return response.json()
17
-
18
- # Fetch chapter details including summary
19
- @st.cache_data
20
- def fetch_chapter_details(chapter_id):
21
- chapter_url = f"{API_BASE_URL}{chapter_id}"
22
- response = requests.get(chapter_url, headers=HEADERS)
23
- response.raise_for_status()
24
- return response.json()
25
-
26
- # Fetch verses of a specific chapter
27
- @st.cache_data
28
- def fetch_verses(chapter_id):
29
- verses_url = f"{API_BASE_URL}{chapter_id}/verses"
30
- response = requests.get(verses_url, headers=HEADERS)
31
- response.raise_for_status()
32
- return response.json()
33
-
34
- # Fetch a specific verse's details
35
- @st.cache_data
36
- def fetch_verse_details(chapter_id, verse_id):
37
- verse_url = f"{API_BASE_URL}{chapter_id}/verses/{verse_id}/"
38
- response = requests.get(verse_url, headers=HEADERS)
39
  response.raise_for_status()
40
  return response.json()
41
 
42
  # Streamlit app
43
  st.title("Bhagavad Gita")
44
 
45
- # Fetch and display chapters
46
- chapters = fetch_chapters()
47
- chapter_list = {chapter['chapter_number']: chapter['name'] for chapter in chapters}
48
 
49
- chapter_id = st.selectbox("Select Chapter", list(chapter_list.keys()), format_func=lambda x: f"Chapter {x}: {chapter_list[x]}")
 
50
 
51
- # Fetch and display chapter details
52
- chapter_details = fetch_chapter_details(chapter_id)
53
- chapter_summary = chapter_details['summary']
54
 
55
- st.subheader(f"Chapter {chapter_id}: {chapter_list[chapter_id]}")
 
 
56
  st.markdown(f"**Summary:**\n\n{chapter_summary}")
57
 
58
- # Fetch and display verses
59
- verses = fetch_verses(chapter_id)
60
-
61
- verse_number = st.selectbox("Select Verse", [verse['verse_number'] for verse in verses])
62
- selected_verse = fetch_verse_details(chapter_id, verse_number)
63
 
 
 
 
64
  st.markdown(f"**Sanskrit:**\n\n{selected_verse['text']}")
65
  st.markdown(f"**Translation:**\n\n{selected_verse['translation']}")
66
 
67
  # Display all verses in the selected chapter
68
  st.subheader("All Verses in this Chapter")
69
- for verse in verses:
70
- verse_details = fetch_verse_details(chapter_id, verse['verse_number'])
71
- st.markdown(f"**Verse {verse['verse_number']}**")
72
- st.markdown(f"**Sanskrit:** {verse_details['text']}")
73
- st.markdown(f"**Translation:** {verse_details['translation']}")
74
  st.markdown("---")
 
1
  import streamlit as st
2
  import requests
3
+ import json
4
 
5
+ # URL to the JSON file
6
+ JSON_URL = "https://cdn.statically.io/gh/gita/gita/main/data/verse.json"
 
 
 
 
7
 
8
+ # Fetch the JSON data
9
  @st.cache_data
10
+ def fetch_data():
11
+ response = requests.get(JSON_URL)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  response.raise_for_status()
13
  return response.json()
14
 
15
  # Streamlit app
16
  st.title("Bhagavad Gita")
17
 
18
+ # Fetch and display chapters and verses
19
+ data = fetch_data()
 
20
 
21
+ # Extract chapter and verse details
22
+ chapters = {int(chapter["chapter_number"]): chapter for chapter in data}
23
 
24
+ # Select Chapter
25
+ chapter_id = st.selectbox("Select Chapter", list(chapters.keys()), format_func=lambda x: f"Chapter {x}: {chapters[x]['name']}")
 
26
 
27
+ # Display chapter summary
28
+ chapter_summary = chapters[chapter_id]['chapter_summary']
29
+ st.subheader(f"Chapter {chapter_id}: {chapters[chapter_id]['name']}")
30
  st.markdown(f"**Summary:**\n\n{chapter_summary}")
31
 
32
+ # Select Verse
33
+ verses = {int(verse["verse_number"]): verse for verse in chapters[chapter_id]['verses']}
34
+ verse_number = st.selectbox("Select Verse", list(verses.keys()))
 
 
35
 
36
+ # Display selected verse
37
+ selected_verse = verses[verse_number]
38
+ st.markdown(f"**Verse {verse_number}**")
39
  st.markdown(f"**Sanskrit:**\n\n{selected_verse['text']}")
40
  st.markdown(f"**Translation:**\n\n{selected_verse['translation']}")
41
 
42
  # Display all verses in the selected chapter
43
  st.subheader("All Verses in this Chapter")
44
+ for verse_number, verse in sorted(verses.items()):
45
+ st.markdown(f"**Verse {verse_number}**")
46
+ st.markdown(f"**Sanskrit:** {verse['text']}")
47
+ st.markdown(f"**Translation:** {verse['translation']}")
 
48
  st.markdown("---")