File size: 1,998 Bytes
fb1a823
c41b38b
 
844e1ad
fb1a823
422d11e
7a171bf
7aa5221
 
422d11e
00286f9
fb1a823
f941d9c
422d11e
844e1ad
 
 
 
422d11e
aba4a6b
 
 
422d11e
844e1ad
 
 
422d11e
f038ea6
7a171bf
422d11e
844e1ad
 
 
 
 
 
422d11e
844e1ad
 
422d11e
844e1ad
422d11e
844e1ad
 
 
 
 
 
 
 
 
aba4a6b
422d11e
844e1ad
 
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
import streamlit as st
from PIL import Image
from ocr_engine import extract_weight_from_image
import urllib.parse

# βœ… App configuration
st.set_page_config(page_title="βš–οΈ Auto Weight Logger", layout="centered")
st.title("βš–οΈ Auto Weight Logger")

# βœ… Capture image from camera
img_data = st.camera_input("πŸ“· Capture the weight display")

if img_data is not None:
    # βœ… Check for file size
    if len(img_data.getvalue()) > 5 * 1024 * 1024:
        st.error("❌ Image too large (>5MB). Please try again.")
        st.stop()

    # βœ… Show captured image
    image = Image.open(img_data)
    st.image(image, caption="πŸ“Έ Snapshot", use_column_width=True)

    # βœ… Run OCR
    with st.spinner("πŸ” Extracting weight..."):
        weight, confidence = extract_weight_from_image(image)

    # βœ… Show debug info (can be removed later)
    st.write(f"πŸ› οΈ DEBUG: weight = {weight}, confidence = {confidence}")

    # βœ… Retry if OCR failed or confidence too low
    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()

    # βœ… Show success
    st.success(f"βœ… Detected Weight: {weight} g (Confidence: {int(confidence)}%)")

    # βœ… Prepare Salesforce URL
    device_id = "BAL-001"
    image_url = ""  # Leave blank unless you host image

    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}"
    )

    # βœ… Send to Salesforce
    st.markdown("### πŸ“€ Send to Salesforce")
    st.markdown(f"[βœ… Click here to confirm and log in Salesforce]({salesforce_url})", unsafe_allow_html=True)