File size: 1,894 Bytes
fb1a823 c41b38b 844e1ad fb1a823 7a171bf 7aa5221 9561543 f352fb7 9561543 f352fb7 9561543 00286f9 fb1a823 fa29632 1f1d6d4 fa29632 9561543 844e1ad aba4a6b 844e1ad f038ea6 7a171bf 9561543 844e1ad f352fb7 9561543 844e1ad f352fb7 9561543 844e1ad 9561543 f352fb7 9561543 844e1ad f352fb7 844e1ad aba4a6b 844e1ad 9561543 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import streamlit as st
from PIL import Image
from ocr_engine import extract_weight_from_image
import urllib.parse
st.set_page_config(page_title="βοΈ Auto Weight Logger", layout="centered")
st.title("βοΈ Auto Weight Logger")
# π Restart App Button
if st.button("π Restart App"):
st.rerun()
# π· Capture Image
img_data = st.camera_input("π· Capture the weight display")
if img_data:
st.success("β
Image captured successfully!")
# Optional file size check
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}")
# Confidence check
if not weight or confidence < 80:
st.error(f"β οΈ OCR confidence too low ({int(confidence)}%). Please retake the image.")
if st.button("π Retry"):
st.rerun()
st.stop()
st.success(f"β
Detected Weight: {weight} g (Confidence: {int(confidence)}%)")
# Salesforce Site Parameters
device_id = "BAL-001"
image_url = "" # Optional image URL
# Encode parameters
encoded_weight = urllib.parse.quote(str(weight))
encoded_device = urllib.parse.quote(device_id)
encoded_image_url = urllib.parse.quote(image_url)
salesforce_url = (
"https://autoweightlogger-dev-ed.my.salesforce-sites.com/"
f"weight_logger_page?WeightInput={encoded_weight}&DeviceID={encoded_device}&ImageURL={encoded_image_url}"
)
st.markdown("### π€ Send to Salesforce")
st.markdown(f"[β
Click here to confirm and log in Salesforce]({salesforce_url})", unsafe_allow_html=True)
|