o
    ~iE                     @   s   d Z ddlmZmZmZ ddlmZmZ ddlm	Z	m
Z
mZ G dd dZdd	ed
edefddZedkrIdZeeddZede de  dS dS )zM
Supabase client module for fetching video metadata including language info.
    )OptionalDictAny)create_clientClient   )SUPABASE_URLSUPABASE_ADMIN_KEYLANGUAGE_MAPc                   @   sN   e Zd ZdZdd Zdedeeeef  fddZ	dded	edefd
dZ
dS )SupabaseVideoClientz4Client for fetching video information from Supabase.c                 C   s   t tt| _d S )N)r   r   r	   client)self r   </home/ubuntu/maya3_transcribe/src/backend/supabase_client.py__init__   s   zSupabaseVideoClient.__init__video_idreturnc              
   C   s   z]g d}|D ](}z| j |dd| }|jr%|jd W   W S W q ty/   Y qw |D ](}z| j |dd| }|jrP|jd W   W S W q2 tyZ   Y q2w W dS  tyw } ztd|  W Y d}~dS d}~ww )z
        Fetch video information from Supabase.
        
        Args:
            video_id: YouTube video ID
            
        Returns:
            Dictionary with video info including language, or None if not found
        )videosvideo_metadatayoutube_videoscontent*r   r   idNz&[Supabase] Error fetching video info: )r   tableselecteqexecutedata	Exceptionprint)r   r   tables_to_tryr   responseer   r   r   get_video_info   s4   
z"SupabaseVideoClient.get_video_infoTelugudefaultc                 C   sX   |  |}|r dD ]}||v r|| r|| }t||  S q	td| d|  |S )a   
        Get the language for a video from Supabase.
        
        Args:
            video_id: YouTube video ID
            default: Default language if not found
            
        Returns:
            Language name (e.g., "Telugu", "Hindi")
        )languagelangaudio_languageprimary_languagez"[Supabase] Language not found for z, using default: )r#   r
   getr   )r   r   r%   
video_infofield	lang_coder   r   r   get_video_language6   s   
z&SupabaseVideoClient.get_video_languageNr$   )__name__
__module____qualname____doc__r   strr   r   r   r#   r.   r   r   r   r   r   
   s
    &r   r$   r   r%   r   c                 C   s   t  }|| |S )z
    Convenience function to get video language.
    
    Args:
        video_id: YouTube video ID
        default: Default language if not found
        
    Returns:
        Language name
    )r   r.   )r   r%   r   r   r   r   r.   O   s   r.   __main__pF_BQpHaIdU)r%   zLanguage for z: Nr/   )r3   typingr   r   r   supabaser   r   configr   r	   r
   r   r4   r.   r0   test_video_idr&   r   r   r   r   r   <module>   s    E