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.")