import sys, os
sys.path.append("/home/thebears/Web/Nuggets/SearchInterface/SearchUtil")
sys.path.append("/home/thebears/Web/Nuggets/SearchInterface/VectorService/util")
import embed_scores as ES
import numpy as np
import time
from CommonCode import kwq

# %%
from CommonCode.video_meta import FTPVide
o


video_path = '/home/thebears/temp/dog.mp4'
prompt = 'hello'

video_embeds = ES.get_embeddings_for_a_file(video_path)
prompt_embeds = ES.get_query_vector(prompt)
video_norm_embeds = FTPVideo.vec_norm(video_embeds['embeds'])                                                                                                                               
prompt_norm_embed = FTPVideo.vec_norm(prompt_embeds) 
scores = np.dot(video_norm_embeds, prompt_norm_embed.T).squeeze().tolist()



ff = FTPVideo(file_path, ignore_filename = True)
res = ff.embeddings
results = np.asarray([res['frame_offsets'], scores])
results.T.tolist()
# %%
def get_embed_cache_file_search_path(file_path):
    return os.path.splitext(file_path)[0]+'.oclip_embeds.npz'




file_search_path = get_embed_cache_file_search_path(file_path)
force_score = False
llvec = None
if os.path.exists(file_search_path):
    llvec = np.load(file_search_path)
    frs = llvec['frame_numbers']
    if set(np.unique(np.diff(frs))) != {1}:
        force_score = True
        llvec = None


if not os.path.exists(file_search_path) or force_score:
    kwq.publish(kwq.TOPICS.enter_60_videos_embed_priority, file_path, {'push_to_db':False, 'frame_interval':1, 'force_score':force_score})



if llvec is None:
    for i in range(120):
        print('waiting')
        if os.path.exists(file_search_path):
            print('Found embedding path!')
            llvec = np.load(file_search_path)
            break
        else:
            time.sleep(1)





