gyanavedika2 / src /streamlit_app.py
GHarshasri's picture
Update src/streamlit_app.py
1569d36 verified
raw
history blame
4.26 kB
def main_app():
st.sidebar.success(f"Logged in as {st.session_state.email}")
if st.sidebar.button("Logout"):
logout()
st.experimental_rerun()
# Feedback inputs on left sidebar
st.sidebar.markdown("---")
st.sidebar.subheader("πŸ“ Give Feedback")
feedback_text = st.sidebar.text_area("Your thoughts about this place", height=100)
feedback_image = st.sidebar.file_uploader("Upload an image", type=["jpg", "jpeg", "png"], key="image_upload")
feedback_audio = st.sidebar.file_uploader("Upload audio", type=["mp3", "wav", "m4a"], key="audio_upload")
feedback_video = st.sidebar.file_uploader("Upload video", type=["mp4", "mov", "avi"], key="video_upload")
if feedback_image:
st.sidebar.image(feedback_image, caption="Your uploaded image", use_container_width=True)
if feedback_audio:
st.sidebar.audio(feedback_audio, format=feedback_audio.type)
if feedback_video:
st.sidebar.video(feedback_video)
st.title("πŸ“š Gyana Vedika - Cultural Explorer")
state = st.selectbox("Select State", list(STATES.keys()))
district = st.selectbox("Select District", STATES[state])
st.subheader(f"Explore {district}, {state}")
uploaded_image = st.file_uploader("Upload a cultural/historical place image", type=["png", "jpg", "jpeg"], key="place_image")
place_to_search = None
if uploaded_image:
st.image(uploaded_image, caption="Uploaded Image", use_container_width=True)
filename = uploaded_image.name.lower()
keywords_map = {
"charminar": "Charminar", "golconda": "Golconda Fort", "qutubshahi": "Qutb Shahi Tombs",
"birla": "Birla Mandir", "salarjung": "Salar Jung Museum", "warangal": "Warangal Fort",
"ramappa": "Ramappa Temple", "bhadrakali": "Bhadra Kali Temple", "kakatiya": "Kakatiya Kala Thoranam",
"pakhal": "Pakhal Lake", "medak": "Medak Cathedral", "nagarjuna": "Nagarjuna Sagar Dam",
"taj": "Taj Mahal", "gateway": "Gateway of India", "qutub": "Qutub Minar",
"mysore": "Mysore Palace", "hampi": "Hampi", "konark": "Konark Sun Temple",
"varanasi": "Varanasi", "madurai": "Meenakshi Temple", "ajanta": "Ajanta Caves", "ellora": "Ellora Caves"
}
for kw, place in keywords_map.items():
if kw in filename:
place_to_search = place
st.success(f"Recognized Place: {place_to_search}")
break
if not place_to_search:
st.warning("Could not recognize place. Try renaming the image file with landmark name.")
manual_place = st.text_input("Or manually enter place name to search info")
if manual_place.strip():
place_to_search = manual_place.strip()
if place_to_search:
language = st.selectbox("Select Wikipedia summary language", ["English", "Hindi", "Telugu", "Tamil", "Marathi", "Bengali"])
lang_codes = {"English": "en", "Hindi": "hi", "Telugu": "te", "Tamil": "ta", "Marathi": "mr", "Bengali": "bn"}
lang_code = lang_codes.get(language, "en")
if st.button(f"Get info about {place_to_search}"):
with st.spinner(f"Fetching Wikipedia summary for {place_to_search}..."):
summary = fetch_wikipedia_summary(place_to_search, lang=lang_code)
st.markdown(f"### Summary of {place_to_search}")
st.write(summary)
if st.sidebar.button("Submit Feedback"):
if feedback_text.strip() or feedback_image or feedback_audio or feedback_video:
img_path = save_temp_file(feedback_image, "img")
audio_path = save_temp_file(feedback_audio, "audio")
video_path = save_temp_file(feedback_video, "video")
save_feedback(
email=st.session_state.email,
place=place_to_search or "Unknown",
state=state,
district=district,
text=feedback_text.strip(),
img_path=img_path,
audio_path=audio_path,
video_path=video_path
)
st.sidebar.success("Thank you! Feedback submitted.")
else:
st.sidebar.warning("Please provide feedback text or upload a file.")