CoolFace
Apppublic

kingame21/BioTech.ai

sourceHugging Facemitupdated 7mo agoView on Hugging Face
0likes
app.py82 linesDownload Raw Back to root
1# main.py2# ATTENZIONE: httpx_patch DEVE essere il PRIMO import, prima di groq/httpx3import httpx_patch  # noqa: F401  ← fix "Connection error" (proxies kwarg)4 5import os6import flet as ft7 8from config import BG_PAGE, BG_CARD, TEXT_MAIN, WINDOW_WIDTH, WINDOW_HEIGHT9from state import AppState10from app_ui import build_app11from auth import user_exists12 13SP_UID  = "biomech.user_id"14SP_USER = "biomech.username"15 16 17async def main(page: ft.Page):18    page.title      = "BioMech AI Coach"19    page.theme_mode = ft.ThemeMode.LIGHT20    page.bgcolor    = BG_PAGE21    page.scroll     = ft.ScrollMode.ADAPTIVE22 23    try:24        page.window.width  = WINDOW_WIDTH25        page.window.height = WINDOW_HEIGHT26    except Exception:27        pass28 29    state = AppState()30 31    # Auto-login (resta connesso)32    # Verifica che user_id salvato esista ancora nel DB SQLite.33    # Se non esiste (es. DB resettato o vecchio JSON auth) forza il login.34    try:35        sp         = ft.SharedPreferences()36        saved_uid  = await sp.get(SP_UID)37        saved_user = await sp.get(SP_USER)38        if saved_uid and saved_user and user_exists(str(saved_uid)):39            state.user_id  = str(saved_uid)40            state.username = str(saved_user)41        elif saved_uid:42            # user_id obsoleto — pulisci SharedPreferences43            print(f"[WARN] auto-login: user_id {saved_uid!r} non nel DB, forzato login.")44            try:45                await sp.remove(SP_UID)46                await sp.remove(SP_USER)47            except Exception:48                pass49    except Exception as ex:50        print(f"[WARN] SharedPreferences get error: {ex}")51 52    content_area, nav_bar, nav_changed = build_app(page, state)53 54    page.appbar = ft.AppBar(55        title=ft.Text("BIOMECH", color=TEXT_MAIN, weight="bold", size=20),56        center_title=True,57        bgcolor=BG_CARD,58    )59    page.navigation_bar = nav_bar60    page.add(content_area)61 62    nav_bar.selected_index = 063    nav_changed(0)64 65 66if __name__ == "__main__":67    os.makedirs("uploads", exist_ok=True)68 69    is_web = bool(70        os.environ.get("HUGGINGFACE_SPACE_ID") or os.environ.get("PORT")71    )72 73    if is_web:74        ft.run(75            main,76            view=ft.AppView.WEB_BROWSER,77            host="0.0.0.0",78            port=int(os.environ.get("PORT", 7860)),79            upload_dir="uploads",80        )81    else:82        ft.run(main, upload_dir="uploads")