RajaThor commited on
Commit
57c28f6
·
verified ·
1 Parent(s): 3741049

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -36
app.py CHANGED
@@ -184,6 +184,41 @@ def delete_person(name):
184
  except Exception as e:
185
  return f"Failed to delete person: {str(e)}"
186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  # Streamlit interface for adding a person
188
  def add_person_ui():
189
  st.title("Add Person")
@@ -272,41 +307,12 @@ def logout():
272
  st.session_state.auth_state["user"] = None
273
  st.session_state.auth_state["signed_in"] = False
274
 
275
- # Function to send message to Firebase Realtime Database
276
- def send_message(sender_email, receiver_email, message):
277
- try:
278
- sender_ref = messages_ref.child(sender_email).child(receiver_email)
279
- receiver_ref = messages_ref.child(receiver_email).child(sender_email)
280
-
281
- sender_ref.push().set({
282
- 'sender_email': sender_email,
283
- 'message': message
284
- })
285
-
286
- receiver_ref.push().set({
287
- 'sender_email': sender_email,
288
- 'message': message
289
- })
290
-
291
- return True
292
- except Exception as e:
293
- print(f"Failed to send message: {str(e)}")
294
- return False
295
-
296
- # Function to get messages from Firebase Realtime Database
297
- def get_messages(sender_email, receiver_email):
298
- try:
299
- messages = messages_ref.child(sender_email).child(receiver_email).get()
300
- return messages
301
- except Exception as e:
302
- print(f"Failed to get messages: {str(e)}")
303
- return None
304
-
305
  # Streamlit interface for chat
306
- def chat_ui(sender_email, receiver_email):
307
  st.title("Chat")
308
- message = st.text_input("Type your message", help="Type your message here")
309
  receiver_email = st.text_input("Receiver's Email", help="Enter the receiver's email address")
 
310
  if st.button("Send"):
311
  if not message or not receiver_email:
312
  st.error("Please enter both a message and the receiver's email.")
@@ -317,9 +323,12 @@ def chat_ui(sender_email, receiver_email):
317
  st.error("Failed to send message.")
318
 
319
  st.title("Messages")
320
- messages = get_messages(sender_email, receiver_email)
321
- if messages:
322
- for key, value in messages.items():
 
 
 
323
  st.write(f"{value['sender_email']}: {value['message']}")
324
 
325
  # Update the main function to include the chat UI option
@@ -338,7 +347,7 @@ def main():
338
  elif option == "Recognize Face (Optimal)":
339
  recognize_face_optimal_ui()
340
  elif option == "Chat":
341
- chat_ui(st.session_state.auth_state["user"].email, "RECEIVER_EMAIL") # Change RECEIVER_EMAIL to the actual receiver's email
342
 
343
  # Run the application
344
  if __name__ == "__main__":
 
184
  except Exception as e:
185
  return f"Failed to delete person: {str(e)}"
186
 
187
+ # Function to send message to Firebase Realtime Database
188
+ def send_message(sender_email, receiver_email, message):
189
+ try:
190
+ sender_ref = messages_ref.child(sender_email).child(receiver_email)
191
+ receiver_ref = messages_ref.child(receiver_email).child(sender_email)
192
+
193
+ sender_ref.push().set({
194
+ 'sender_email': sender_email,
195
+ 'message': message
196
+ })
197
+
198
+ receiver_ref.push().set({
199
+ 'sender_email': sender_email,
200
+ 'message': message
201
+ })
202
+
203
+ return True
204
+ except Exception as e:
205
+ print(f"Failed to send message: {str(e)}")
206
+ return False
207
+
208
+ # Function to get messages from Firebase Realtime Database
209
+ def get_messages(sender_email, receiver_email):
210
+ try:
211
+ sender_ref = messages_ref.child(sender_email).child(receiver_email)
212
+ receiver_ref = messages_ref.child(receiver_email).child(sender_email)
213
+
214
+ sender_messages = sender_ref.get()
215
+ receiver_messages = receiver_ref.get()
216
+
217
+ return sender_messages, receiver_messages
218
+ except Exception as e:
219
+ print(f"Failed to get messages: {str(e)}")
220
+ return None, None
221
+
222
  # Streamlit interface for adding a person
223
  def add_person_ui():
224
  st.title("Add Person")
 
307
  st.session_state.auth_state["user"] = None
308
  st.session_state.auth_state["signed_in"] = False
309
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  # Streamlit interface for chat
311
+ def chat_ui():
312
  st.title("Chat")
313
+ sender_email = st.session_state.auth_state["user"].email
314
  receiver_email = st.text_input("Receiver's Email", help="Enter the receiver's email address")
315
+ message = st.text_input("Type your message", help="Type your message here")
316
  if st.button("Send"):
317
  if not message or not receiver_email:
318
  st.error("Please enter both a message and the receiver's email.")
 
323
  st.error("Failed to send message.")
324
 
325
  st.title("Messages")
326
+ sender_messages, receiver_messages = get_messages(sender_email, receiver_email)
327
+ if sender_messages:
328
+ for key, value in sender_messages.items():
329
+ st.write(f"{value['sender_email']}: {value['message']}")
330
+ if receiver_messages:
331
+ for key, value in receiver_messages.items():
332
  st.write(f"{value['sender_email']}: {value['message']}")
333
 
334
  # Update the main function to include the chat UI option
 
347
  elif option == "Recognize Face (Optimal)":
348
  recognize_face_optimal_ui()
349
  elif option == "Chat":
350
+ chat_ui()
351
 
352
  # Run the application
353
  if __name__ == "__main__":