Auto-weight-logger1 / src /streamlit_app.py
Sanjayraju30's picture
Update src/streamlit_app.py
1f34a95 verified
import streamlit as st
from PIL import Image
from ocr_engine import extract_weight_from_image
import urllib.parse
from datetime import datetime
st.set_page_config(page_title="βš–οΈ Auto Weight Logger", layout="centered")
st.title("βš–οΈ Auto Weight Logger")
img_data = st.camera_input("πŸ“· Capture the weight display")
if img_data:
st.success("βœ… Image captured successfully!")
if len(img_data.getvalue()) > 5 * 1024 * 1024:
st.error("❌ Image too large (>5MB). Please try again.")
st.stop()
image = Image.open(img_data)
st.image(image, caption="πŸ“Έ Snapshot", use_column_width=True)
with st.spinner("πŸ” Extracting weight..."):
weight, confidence = extract_weight_from_image(image)
st.write(f"πŸ› οΈ DEBUG: weight = {weight}, confidence = {confidence}")
if not weight or confidence < 80:
st.error(f"⚠️ OCR confidence too low ({int(confidence)}%). Please retake the image.")
if st.button("πŸ” Try Again"):
st.experimental_rerun()
st.stop()
# βœ… Prepare data for preview and URL
device_id = "BAL-001"
image_url = "" # optional - add later if you host the image
captured_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
status = "Pending Submission"
# βœ… Show full preview
st.markdown("### πŸ“‹ Record Preview (before sending to Salesforce)")
st.write({
"Auto Number": "Will be generated in Salesforce",
"Captured Weight": f"{weight} g",
"Captured At": captured_at,
"Snapshot Image": "Attached" if image_url else "Not available",
"Device ID": device_id,
"Status": status
})
# βœ… Encode for Salesforce
encoded_weight = urllib.parse.quote(str(weight))
encoded_device = urllib.parse.quote(device_id)
encoded_image_url = urllib.parse.quote(image_url)
salesforce_url = (
f"https://autoweightlogger-dev-ed.my.salesforce-sites.com/"
f"weight_logger_page?WeightInput={encoded_weight}&DeviceID={encoded_device}&ImageURL={encoded_image_url}"
)
# βœ… Show Salesforce link
st.markdown("### πŸ“€ Send to Salesforce")
st.markdown(f"[βœ… Click here to confirm and log in Salesforce]({salesforce_url})", unsafe_allow_html=True)