Spaces:
Sleeping
Sleeping
File size: 4,261 Bytes
f90c777 d903b86 20e2a26 f90c777 d903b86 1569d36 d903b86 20e2a26 d903b86 20e2a26 d903b86 f90c777 1569d36 f90c777 d903b86 739643c f90c777 d903b86 f90c777 d903b86 f90c777 d903b86 f90c777 d903b86 f90c777 d903b86 b9b85bf 1569d36 b9b85bf d903b86 b9b85bf 1569d36 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
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.") |