Spaces:
Build error
Build error
Update app.py
Browse files
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
|
| 60 |
if "email" not in st.session_state:
|
| 61 |
-
st.session_state["email"] =
|
| 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 |
-
|
| 184 |
"""
|
| 185 |
try:
|
| 186 |
trustbuilders = db.child("users").child(user_id).child("TrustBuilders").get().val()
|
| 187 |
if trustbuilders:
|
| 188 |
-
|
| 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.
|
| 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
|
| 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(
|
| 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 |
-
|
|
|
|
| 780 |
search_query = st.text_input("Search by keyword", key="search_query")
|
| 781 |
-
|
| 782 |
-
|
|
|
|
| 783 |
if st.button("Show TrustBuilders", key="show_trustbuilders"):
|
| 784 |
-
|
| 785 |
-
trustbuilders = fetch_trustbuilders(st.session_state
|
| 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 |
-
|
| 797 |
-
|
| 798 |
-
|
| 799 |
-
|
| 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
|
| 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}")
|