Spaces:
Sleeping
Sleeping
Update src/streamlit_app.py
Browse files- src/streamlit_app.py +17 -14
src/streamlit_app.py
CHANGED
@@ -4,21 +4,16 @@ import os
|
|
4 |
import wikipedia
|
5 |
import csv
|
6 |
from datetime import datetime
|
7 |
-
import tempfile
|
8 |
|
9 |
# ====== Setup ======
|
10 |
USERS = {}
|
11 |
-
|
12 |
-
# Use system temp directory to avoid permission issues
|
13 |
-
UPLOAD_FOLDER = os.path.join(tempfile.gettempdir(), "uploads")
|
14 |
MEDIA_FOLDER = os.path.join(UPLOAD_FOLDER, "feedback_media")
|
15 |
FEEDBACK_FILE = os.path.join(UPLOAD_FOLDER, "feedback.csv")
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
except Exception as e:
|
21 |
-
st.error(f"Failed to create upload folders: {e}")
|
22 |
|
23 |
STATES = {
|
24 |
"Telangana": ["Hyderabad", "Warangal", "Nizamabad", "Karimnagar", "Khammam"],
|
@@ -48,7 +43,7 @@ for key, default in {
|
|
48 |
def send_otp(email):
|
49 |
st.session_state.otp_sent_to = email
|
50 |
st.session_state.otp_verified = False
|
51 |
-
return "1234"
|
52 |
|
53 |
def verify_otp(entered_otp):
|
54 |
if st.session_state.otp_sent_to and entered_otp == "1234":
|
@@ -75,12 +70,15 @@ def fetch_wikipedia_summary(title, lang="en"):
|
|
75 |
return f"Error fetching summary: {str(e)}"
|
76 |
|
77 |
def save_temp_file(uploaded_file, filetype):
|
78 |
-
if uploaded_file:
|
79 |
filename = f"{filetype}_{datetime.now().strftime('%Y%m%d%H%M%S')}_{uploaded_file.name}"
|
80 |
filepath = os.path.join(MEDIA_FOLDER, filename)
|
81 |
-
|
82 |
-
|
83 |
-
|
|
|
|
|
|
|
84 |
return ""
|
85 |
|
86 |
def save_feedback(email, place, state, district, text, img_path="", audio_path="", video_path=""):
|
@@ -223,6 +221,10 @@ def main_app():
|
|
223 |
audio_path = save_temp_file(feedback_audio, "audio")
|
224 |
video_path = save_temp_file(feedback_video, "video")
|
225 |
|
|
|
|
|
|
|
|
|
226 |
save_feedback(
|
227 |
email=st.session_state.email,
|
228 |
place=place_to_search or "Unknown",
|
@@ -254,6 +256,7 @@ h1, h2, h3, h4, h5, h6 {
|
|
254 |
</style>
|
255 |
""", unsafe_allow_html=True)
|
256 |
|
|
|
257 |
if not st.session_state.logged_in:
|
258 |
page = st.sidebar.radio("Choose Option", ["Signup", "Login"])
|
259 |
if page == "Signup":
|
|
|
4 |
import wikipedia
|
5 |
import csv
|
6 |
from datetime import datetime
|
|
|
7 |
|
8 |
# ====== Setup ======
|
9 |
USERS = {}
|
10 |
+
UPLOAD_FOLDER = "uploads"
|
|
|
|
|
11 |
MEDIA_FOLDER = os.path.join(UPLOAD_FOLDER, "feedback_media")
|
12 |
FEEDBACK_FILE = os.path.join(UPLOAD_FOLDER, "feedback.csv")
|
13 |
|
14 |
+
# Create folders if they don't exist
|
15 |
+
os.makedirs(UPLOAD_FOLDER, exist_ok=True)
|
16 |
+
os.makedirs(MEDIA_FOLDER, exist_ok=True)
|
|
|
|
|
17 |
|
18 |
STATES = {
|
19 |
"Telangana": ["Hyderabad", "Warangal", "Nizamabad", "Karimnagar", "Khammam"],
|
|
|
43 |
def send_otp(email):
|
44 |
st.session_state.otp_sent_to = email
|
45 |
st.session_state.otp_verified = False
|
46 |
+
return "1234" # Simulated OTP
|
47 |
|
48 |
def verify_otp(entered_otp):
|
49 |
if st.session_state.otp_sent_to and entered_otp == "1234":
|
|
|
70 |
return f"Error fetching summary: {str(e)}"
|
71 |
|
72 |
def save_temp_file(uploaded_file, filetype):
|
73 |
+
if uploaded_file is not None:
|
74 |
filename = f"{filetype}_{datetime.now().strftime('%Y%m%d%H%M%S')}_{uploaded_file.name}"
|
75 |
filepath = os.path.join(MEDIA_FOLDER, filename)
|
76 |
+
try:
|
77 |
+
with open(filepath, "wb") as f:
|
78 |
+
f.write(uploaded_file.getbuffer()) # safer for streamlit files
|
79 |
+
return filepath
|
80 |
+
except Exception as e:
|
81 |
+
st.error(f"Failed to save {filetype} file: {e}")
|
82 |
return ""
|
83 |
|
84 |
def save_feedback(email, place, state, district, text, img_path="", audio_path="", video_path=""):
|
|
|
221 |
audio_path = save_temp_file(feedback_audio, "audio")
|
222 |
video_path = save_temp_file(feedback_video, "video")
|
223 |
|
224 |
+
st.sidebar.write(f"Image saved at: {img_path}")
|
225 |
+
st.sidebar.write(f"Audio saved at: {audio_path}")
|
226 |
+
st.sidebar.write(f"Video saved at: {video_path}")
|
227 |
+
|
228 |
save_feedback(
|
229 |
email=st.session_state.email,
|
230 |
place=place_to_search or "Unknown",
|
|
|
256 |
</style>
|
257 |
""", unsafe_allow_html=True)
|
258 |
|
259 |
+
# ====== Run app ======
|
260 |
if not st.session_state.logged_in:
|
261 |
page = st.sidebar.radio("Choose Option", ["Signup", "Login"])
|
262 |
if page == "Signup":
|