RajaThor commited on
Commit
b86ffde
·
verified ·
1 Parent(s): 761c2eb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -43
app.py CHANGED
@@ -302,68 +302,51 @@ def feedback_ui():
302
 
303
  #section for messaging
304
 
305
- # Send a message to the receiver_email from the sender_email
306
  def send_message(sender_email, receiver_email, message_content):
307
  try:
308
- # Add a new document to the 'messages' collection
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
- log_action(user_email, "Viewed messages")
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 sending messages
332
- def send_message_ui():
333
- st.title("Send Message")
334
- sender_email = st.session_state.auth_state["user"].email
335
- receiver_email = st.text_input("Receiver's Email", help="Enter the receiver's email address")
336
- message_content = st.text_area("Message Content")
337
- if st.button("Send Message", key="send_message_btn"): # Add unique key to the button
338
- result = send_message(sender_email, receiver_email, message_content)
339
- st.write(result)
340
-
341
- # Streamlit interface for viewing messages
342
- def view_messages_ui():
343
- st.title("Messages")
344
- user_email = st.session_state.auth_state["user"].email
345
- messages = get_messages(user_email)
346
- if messages is not None:
347
- for message in messages:
348
- message_dict = message.to_dict() # Convert Firestore document to dictionary
349
- st.write(f"From: {message_dict['sender_email']}")
350
- st.write(f"Message: {message_dict['message_content']}")
351
- st.write("---")
352
-
353
- # Streamlit interface for messenger using tabs
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