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)