Update app.py
Browse files
app.py
CHANGED
|
@@ -302,68 +302,51 @@ def feedback_ui():
|
|
| 302 |
|
| 303 |
#section for messaging
|
| 304 |
|
| 305 |
-
#
|
| 306 |
def send_message(sender_email, receiver_email, message_content):
|
| 307 |
try:
|
| 308 |
-
# Add
|
| 309 |
db_firestore.collection('messages').add({
|
| 310 |
'sender_email': sender_email,
|
| 311 |
'receiver_email': receiver_email,
|
| 312 |
'message_content': message_content,
|
| 313 |
'timestamp': firestore.SERVER_TIMESTAMP
|
| 314 |
})
|
| 315 |
-
log_action(sender_email, "Sent message")
|
| 316 |
return "Message sent successfully!"
|
| 317 |
except Exception as e:
|
| 318 |
return f"Failed to send message: {str(e)}"
|
| 319 |
|
| 320 |
# Function to retrieve messages for a user
|
| 321 |
-
@st_cache
|
| 322 |
def get_messages(user_email):
|
| 323 |
try:
|
| 324 |
messages = db_firestore.collection('messages').where('receiver_email', '==', user_email).order_by('timestamp', direction=firestore.Query.DESCENDING).stream()
|
| 325 |
-
|
| 326 |
-
return messages # Return the Firestore query snapshot
|
| 327 |
except Exception as e:
|
| 328 |
-
st.error(f"Failed to retrieve messages: {str(e)}")
|
| 329 |
return None
|
| 330 |
|
| 331 |
-
# Streamlit interface for
|
| 332 |
-
def
|
| 333 |
-
st.title("
|
| 334 |
-
|
| 335 |
-
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
| 339 |
-
|
| 340 |
-
|
| 341 |
-
|
| 342 |
-
|
| 343 |
-
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
|
| 350 |
-
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
|
| 354 |
-
def messenger_ui():
|
| 355 |
-
st.title("💬 Messenger")
|
| 356 |
-
tabs = st.columns(2)
|
| 357 |
-
if tabs[0].button("Send Message"):
|
| 358 |
-
st.session_state["messenger_tab"] = "Send Message"
|
| 359 |
-
if tabs[1].button("View Messages"):
|
| 360 |
-
st.session_state["messenger_tab"] = "View Messages"
|
| 361 |
-
|
| 362 |
-
selected_tab = st.session_state.get("messenger_tab", "Send Message")
|
| 363 |
-
if selected_tab == "Send Message":
|
| 364 |
-
send_message_ui()
|
| 365 |
-
elif selected_tab == "View Messages":
|
| 366 |
-
view_messages_ui()
|
| 367 |
|
| 368 |
#end of messaging section
|
| 369 |
|
|
|
|
| 302 |
|
| 303 |
#section for messaging
|
| 304 |
|
| 305 |
+
# Function to send a message
|
| 306 |
def send_message(sender_email, receiver_email, message_content):
|
| 307 |
try:
|
| 308 |
+
# Add message to Firestore
|
| 309 |
db_firestore.collection('messages').add({
|
| 310 |
'sender_email': sender_email,
|
| 311 |
'receiver_email': receiver_email,
|
| 312 |
'message_content': message_content,
|
| 313 |
'timestamp': firestore.SERVER_TIMESTAMP
|
| 314 |
})
|
|
|
|
| 315 |
return "Message sent successfully!"
|
| 316 |
except Exception as e:
|
| 317 |
return f"Failed to send message: {str(e)}"
|
| 318 |
|
| 319 |
# Function to retrieve messages for a user
|
|
|
|
| 320 |
def get_messages(user_email):
|
| 321 |
try:
|
| 322 |
messages = db_firestore.collection('messages').where('receiver_email', '==', user_email).order_by('timestamp', direction=firestore.Query.DESCENDING).stream()
|
| 323 |
+
return messages
|
|
|
|
| 324 |
except Exception as e:
|
|
|
|
| 325 |
return None
|
| 326 |
|
| 327 |
+
# Streamlit interface for messaging
|
| 328 |
+
def messaging_ui():
|
| 329 |
+
st.title("Messaging")
|
| 330 |
+
|
| 331 |
+
if st.session_state.auth_state["signed_in"]:
|
| 332 |
+
sender_email = st.session_state.auth_state["user"].email
|
| 333 |
+
receiver_email = st.text_input("Receiver's Email", help="Enter the receiver's email address")
|
| 334 |
+
message_content = st.text_area("Message Content")
|
| 335 |
+
|
| 336 |
+
if st.button("Send Message"):
|
| 337 |
+
result = send_message(sender_email, receiver_email, message_content)
|
| 338 |
+
st.write(result)
|
| 339 |
+
|
| 340 |
+
messages = get_messages(sender_email)
|
| 341 |
+
if messages:
|
| 342 |
+
st.write("Your messages:")
|
| 343 |
+
for message in messages:
|
| 344 |
+
message_data = message.to_dict()
|
| 345 |
+
st.write(f"From: {message_data['sender_email']}")
|
| 346 |
+
st.write(f"Message: {message_data['message_content']}")
|
| 347 |
+
st.write("---")
|
| 348 |
+
else:
|
| 349 |
+
st.write("Please sign in to send and view messages.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 350 |
|
| 351 |
#end of messaging section
|
| 352 |
|