import stat

import requests
import streamlit as st

from api import FacialSyncService

access_token = st.experimental_get_query_params().get("token", [""])[0]

if access_token == "":
    st.error("Access denied")
    st.stop()

api = FacialSyncService(access_token)

st.title("🤪 Facial Expression Sync Service")

img_file_buffer = st.camera_input("Take a picture")

st.write("### Compare with static images")
col1, col2 = st.columns(2)
for i, col in enumerate([col1, col2]):
    with col:
        img_cont = st.container()
        static_image = st.file_uploader(
            f"Upload image {i+1}",
            type=["png", "jpg", "jpeg"],
            key=f"static_img_uploader_{i}",
        )
        if static_image is not None:
            img_cont.image(static_image, caption=f"Image {i+1}", width=200)
            if img_file_buffer is not None:
                img_cont.metric(
                    "Similarity",
                    f"{api.similarity(img_file_buffer.getvalue(), static_image.getvalue()):.2f}",
                )