Update app.py
Browse files
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(
|
| 307 |
st.title("Chat")
|
| 308 |
-
|
| 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 |
-
|
| 321 |
-
if
|
| 322 |
-
for key, value in
|
|
|
|
|
|
|
|
|
|
| 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(
|
| 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__":
|