| import streamlit as st |
| from supabase import create_client, Client |
| from deep_translator import GoogleTranslator |
|
|
| URL = "https://ulqepcglktyojwtnhnga.supabase.co" |
| KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVscWVwY2dsa3R5b2p3dG5obmdhIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzIwMDM0MjAsImV4cCI6MjA4NzU3OTQyMH0.JLcSI9fYNxjW0MSkJKexXU8KBRQUzrZEj7s7hcbXuAc" |
| supabase: Client = create_client(URL, KEY) |
|
|
| st.set_page_config(page_title="Info Prodotto", page_icon="🍷") |
| def translate(text, lang): |
| if not text or lang == 'it': return text |
| try: return GoogleTranslator(source='auto', target=lang).translate(text) |
| except: return text |
|
|
| id_v = st.query_params.get("id") |
|
|
| if id_v: |
| res = supabase.table("wine_labels").select("*").eq("id", id_v).execute() |
| if res.data: |
| v = res.data[0] |
| t = {"Italiano": "it", "English": "en", "Français": "fr", "Deutsch": "de", "Español": "es"}[st.selectbox("🌍 Language", ["Italiano", "English", "Français", "Deutsch", "Español"])] |
| |
| st.markdown(f"### {v.get('brand_name', '')}") |
| st.header(f"{v.get('wine_name', '')} {int(v.get('vintage', 0))}") |
| |
| if v.get('is_dealcoholized'): |
| st.warning("⚠️ " + translate("Prodotto ottenuto mediante dealcolizzazione", t)) |
| |
| st.subheader("📊 " + translate("Dichiarazione Nutrizionale", t)) |
| st.markdown(f"**{translate('Energia', t)}:** {int(v.get('energy_kj', 0))} kJ / {int(v.get('energy_kcal', 0))} kcal \n**{translate('Zuccheri', t)}:** {v.get('carbs_sugar', 0)} g \n**{translate('Sale', t)}:** {v.get('salt', 0)} g") |
| st.info(f"**{translate('Ingredienti', t)}:** {translate(v.get('ingredients', ''), t)}") |
| |
| st.subheader("♻️ " + translate("Smaltimento", t)) |
| c1, c2, c3 = st.columns(3) |
| c1.write(f"🍾 **Bottiglia**\n{v.get('bottle_material', 'GL 71')}") |
| c2.write(f"🌱 **Tappo**\n{v.get('cork_material', 'FOR 51')}") |
| c3.write(f"🛡️ **Capsula**\n{v.get('capsule_material', 'C/ALU 90')}") |
| else: |
| st.error("Etichetta non trovata.") |
| else: |
| st.info("Scansiona un QR Code WineLink.") |