Wajahat698 commited on
Commit
677ceb2
·
verified ·
1 Parent(s): 73a8ed6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -51
app.py CHANGED
@@ -56,9 +56,9 @@ INITIAL_MESSAGE_LIMIT = 100
56
 
57
 
58
  if "wix_user_id" not in st.session_state:
59
- st.session_state["wix_user_id"] = str(uuid.uuid4()) # Assign a unique ID for each session
60
  if "email" not in st.session_state:
61
- st.session_state["email"] = str(uuid.uuid4()) # Default email for demo
62
  if "message_limit" not in st.session_state:
63
  st.session_state["message_limit"] = 1000
64
  if "used_messages" not in st.session_state:
@@ -180,22 +180,14 @@ def upload_to_firebase(user_id, file):
180
 
181
  def fetch_trustbuilders(user_id):
182
  """
183
- Fetch all TrustBuilders for a user from Firebase.
184
  """
185
  try:
186
  trustbuilders = db.child("users").child(user_id).child("TrustBuilders").get().val()
187
  if trustbuilders:
188
- # Ensure all entries are in the expected dictionary format
189
- processed_trustbuilders = {}
190
- for key, value in trustbuilders.items():
191
- if isinstance(value, dict):
192
- processed_trustbuilders[key] = value
193
- else:
194
- # Assuming value is just the content string and reconstructing the expected format
195
- processed_trustbuilders[key] = {"content": value}
196
- return processed_trustbuilders
197
  else:
198
- st.warning("No TrustBuilders found.")
199
  return {}
200
  except Exception as e:
201
  st.error(f"Error fetching TrustBuilders: {e}")
@@ -497,20 +489,18 @@ def load_user_content(user_id):
497
  except Exception as e:
498
  st.info("not loaded ")
499
 
500
-
501
  def save_content(user_id, content):
502
  """
503
- Save TrustBuilder in Firebase under the correct structure.
504
  """
505
  try:
506
- trustbuilder_id = str(uuid.uuid4())
507
  trustbuilder_data = {"content": content}
508
  db.child("users").child(user_id).child("TrustBuilders").child(trustbuilder_id).set(trustbuilder_data)
509
- st.success(f"TrustBuilder '{content}' saved successfully!")
510
  except Exception as e:
511
  st.error(f"Error saving TrustBuilder: {e}")
512
 
513
-
514
  def ai_allocate_trust_bucket(trust_builder_text):
515
  # Implement your AI allocation logic here
516
  return "Stability"
@@ -774,47 +764,44 @@ def side():
774
 
775
  # Show Trust Builders Section
776
  trust_buckets = ["Stability", "Development", "Relationship", "Benefit", "Vision", "Competence"]
777
-
778
  st.subheader("Show My TrustBuilders®")
779
- # Ensure unique keys for each text input by providing explicit keys
 
780
  search_query = st.text_input("Search by keyword", key="search_query")
781
- selected_bucket = st.selectbox("Select Trust Bucket", ["All"] + trust_buckets, key="selected_bucket")
782
-
 
783
  if st.button("Show TrustBuilders", key="show_trustbuilders"):
784
- # Fetch TrustBuilders from Firebase
785
- trustbuilders = fetch_trustbuilders(st.session_state.get("wix_user_id"))
786
- st.write(f"Debugging: Retrieved TrustBuilders - {trustbuilders}") # Debug output to check what is being fetched
787
-
788
  results = []
 
789
  if trustbuilders:
790
  for tb_id, tb_data in trustbuilders.items():
791
  content = tb_data.get("content", "")
792
  bucket, text = content.split(": ", 1) if ": " in content else ("", content)
793
  if (selected_bucket == "All" or bucket == selected_bucket) and (not search_query or search_query.lower() in text.lower()):
794
  results.append(content)
795
-
796
- if results:
797
- st.write("### Results:")
798
- for result in results:
799
- st.write(f"- {result}")
800
- else:
801
- st.write("No TrustBuilders found matching the criteria.")
802
  else:
803
- st.write("No TrustBuilders found.")
804
-
805
  st.subheader("Save TrustBuilders®")
806
  brand_save = st.text_input("Brand/Product/Person", key="brand_input_save")
807
  trust_builder_text = st.text_area("Type/paste Trust Builder®", key="trust_builder_text")
808
- selected_save_bucket = st.selectbox("Choose Trust Bucket to Save", trust_buckets, key="save_bucket")
809
-
810
  if st.button("Save TrustBuilder", key="save_trustbuilder"):
811
  if trust_builder_text.strip() and selected_save_bucket:
812
  content_to_save = f"{selected_save_bucket}: Brand: {brand_save.strip()} | {trust_builder_text.strip()}"
813
- save_content(st.session_state.get("wix_user_id"), content_to_save) # Assume function signature has been corrected
814
- st.success("TrustBuilder saved successfully!")
815
  else:
816
  st.warning("Please fill all fields before saving.")
817
-
818
 
819
 
820
 
@@ -1515,26 +1502,20 @@ if "used_messages" not in st.session_state:
1515
  st.session_state["used_messages"] = 0
1516
 
1517
  def initialize_user_session():
 
 
 
1518
  try:
1519
  user_id = st.session_state["wix_user_id"]
1520
  email = st.session_state["email"]
1521
  user_data = {
1522
- "user_name":user_id,
1523
  "email": email,
1524
  "message_limit": 1000,
1525
  "used_messages": 0,
1526
  "TrustBuilders": {}
1527
-
1528
  }
1529
-
1530
- # Save user session to Firebase
1531
- db.child("users").child(user_id).set(user_data)
1532
-
1533
- # Update session state
1534
- st.session_state["user_name"] = user_data["user_name"]
1535
- st.session_state["message_limit"] = user_data["message_limit"]
1536
- st.session_state["used_messages"] = user_data["used_messages"]
1537
-
1538
  st.success("User session initialized successfully.")
1539
  except Exception as e:
1540
  st.error(f"Error initializing user session: {e}")
 
56
 
57
 
58
  if "wix_user_id" not in st.session_state:
59
+ st.session_state["wix_user_id"] = str(uuid.uuid4()) # Assign unique user ID for the session
60
  if "email" not in st.session_state:
61
+ st.session_state["email"] = f"user_{uuid.uuid4()}@example.com"
62
  if "message_limit" not in st.session_state:
63
  st.session_state["message_limit"] = 1000
64
  if "used_messages" not in st.session_state:
 
180
 
181
  def fetch_trustbuilders(user_id):
182
  """
183
+ Retrieve TrustBuilders from Firebase.
184
  """
185
  try:
186
  trustbuilders = db.child("users").child(user_id).child("TrustBuilders").get().val()
187
  if trustbuilders:
188
+ return trustbuilders
 
 
 
 
 
 
 
 
189
  else:
190
+ st.info("No TrustBuilders found.")
191
  return {}
192
  except Exception as e:
193
  st.error(f"Error fetching TrustBuilders: {e}")
 
489
  except Exception as e:
490
  st.info("not loaded ")
491
 
 
492
  def save_content(user_id, content):
493
  """
494
+ Save a TrustBuilder to Firebase.
495
  """
496
  try:
497
+ trustbuilder_id = str(uuid.uuid4()) # Generate unique ID for each TrustBuilder
498
  trustbuilder_data = {"content": content}
499
  db.child("users").child(user_id).child("TrustBuilders").child(trustbuilder_id).set(trustbuilder_data)
500
+ st.success("TrustBuilder saved successfully.")
501
  except Exception as e:
502
  st.error(f"Error saving TrustBuilder: {e}")
503
 
 
504
  def ai_allocate_trust_bucket(trust_builder_text):
505
  # Implement your AI allocation logic here
506
  return "Stability"
 
764
 
765
  # Show Trust Builders Section
766
  trust_buckets = ["Stability", "Development", "Relationship", "Benefit", "Vision", "Competence"]
 
767
  st.subheader("Show My TrustBuilders®")
768
+
769
+ # Ensure unique keys for widgets
770
  search_query = st.text_input("Search by keyword", key="search_query")
771
+ trust_buckets = ["All", "Stability", "Development", "Relationship", "Benefit", "Vision", "Competence"]
772
+ selected_bucket = st.selectbox("Select Trust Bucket", trust_buckets, key="selected_bucket")
773
+
774
  if st.button("Show TrustBuilders", key="show_trustbuilders"):
775
+ user_id = st.session_state["wix_user_id"]
776
+ trustbuilders = fetch_trustbuilders(st.session_state["wix_user_id"])
 
 
777
  results = []
778
+
779
  if trustbuilders:
780
  for tb_id, tb_data in trustbuilders.items():
781
  content = tb_data.get("content", "")
782
  bucket, text = content.split(": ", 1) if ": " in content else ("", content)
783
  if (selected_bucket == "All" or bucket == selected_bucket) and (not search_query or search_query.lower() in text.lower()):
784
  results.append(content)
785
+
786
+ if results:
787
+ st.markdown("### Results:")
788
+ for result in results:
789
+ st.markdown(f"- {result}")
 
 
790
  else:
791
+ st.write("No TrustBuilders found matching the criteria.")
792
+
793
  st.subheader("Save TrustBuilders®")
794
  brand_save = st.text_input("Brand/Product/Person", key="brand_input_save")
795
  trust_builder_text = st.text_area("Type/paste Trust Builder®", key="trust_builder_text")
796
+ selected_save_bucket = st.selectbox("Choose Trust Bucket to Save", trust_buckets[1:], key="save_bucket")
797
+
798
  if st.button("Save TrustBuilder", key="save_trustbuilder"):
799
  if trust_builder_text.strip() and selected_save_bucket:
800
  content_to_save = f"{selected_save_bucket}: Brand: {brand_save.strip()} | {trust_builder_text.strip()}"
801
+ save_content(st.session_state["wix_user_id"], content_to_save)
 
802
  else:
803
  st.warning("Please fill all fields before saving.")
804
+
805
 
806
 
807
 
 
1502
  st.session_state["used_messages"] = 0
1503
 
1504
  def initialize_user_session():
1505
+ """
1506
+ Initialize user data in Firebase and session state.
1507
+ """
1508
  try:
1509
  user_id = st.session_state["wix_user_id"]
1510
  email = st.session_state["email"]
1511
  user_data = {
1512
+ "user_name": user_id,
1513
  "email": email,
1514
  "message_limit": 1000,
1515
  "used_messages": 0,
1516
  "TrustBuilders": {}
 
1517
  }
1518
+ db.child("users").child(user_id).update(user_data)
 
 
 
 
 
 
 
 
1519
  st.success("User session initialized successfully.")
1520
  except Exception as e:
1521
  st.error(f"Error initializing user session: {e}")