import face_recognition
import numpy as np
import sys
import os

if len(sys.argv) < 3:
    print(0)
    sys.exit()

image_path = sys.argv[1]
empresa = sys.argv[2]

encodings_path = f"/var/www/base/gestor-proyectos/documentos/{empresa}/face_data/encodings.npy"
ids_path = f"/var/www/base/gestor-proyectos/documentos/{empresa}/face_data/ids.npy"

if not (os.path.exists(encodings_path) and os.path.exists(ids_path)):
    print(0)
    sys.exit()

known_faces = np.load(encodings_path, allow_pickle=True)
known_ids = np.load(ids_path, allow_pickle=True)

imagen = face_recognition.load_image_file(image_path)
codificaciones = face_recognition.face_encodings(imagen)

resultado = 0
if codificaciones:
    rostro = codificaciones[0]
    matches = face_recognition.compare_faces(known_faces, rostro, tolerance=0.5)
    distancias = face_recognition.face_distance(known_faces, rostro)
    if True in matches:
        mejor = np.argmin(distancias)
        resultado = int(known_ids[mejor])
print(resultado, end='')
