
    i              	           d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZmZmZ d dlmZmZ d	d
lmZmZ d ZdZ e       Z e       Z e       Z e       ZdedefdZddZddede de!de!fdZ"y)    N)BeautifulSoup)Console)Prompt)TVShowManager)create_clientget_userAgent)site_constantsMediaManager	MediaItem)base_process_search_resultbase_search   )download_seriesdownload_filmzFilm_&_Seriequeryreturnc                 :	   t         j                          t        j                          t               }ddg}|D ]l  }t        j                  d|        	 t        dt               i      j                  t        j                   d|       }|j                          t        |j                  d      }t        j                  |j!                  dd	d
i      j                  d            d   }t        j                   d| d|  }t        j                  d|        	 t        t               d|d      j                  |      }|j                          	 |j                         j                  d      j                  d      }	t)        |	      D ]  \  }
}	 |j                  d	      }||v r|j+                  |       |j                  d      xs g }d}g d}|D ]F  }|D ];  }|j                  d      |k(  s|j                  d      s*|j                  d      } n |sF n |s|r|d   j                  d      }d}|r%t        j                  j-                  d d!       d"| }d}|sS|j                  d#      xs g D ];  }|j                  d$      d%k(  s|j                  d&      s*|j                  d&      } n |sS|j                  d#      xs g D ];  }|j                  d$      d'k(  s|j                  d&      s*|j                  d&      } n |s$|j                  d(      xs |j                  d'      }t         j+                  t/        ||j                  d)      |j                  d*      |j                  d      ||rd+|v r|j1                  d+      d   nd,|-              o t         j3                         S # t"        $ r7}t        j                  dt        j$                   d| d|        Y d}~d}~ww xY w# t"        $ r7}t        j                  dt        j$                   d| d|        Y d}~d}~ww xY w# t"        $ r&}t        j'                  d| d|        Y d}~4d}~ww xY w# t"        $ r}t        d.| d|        Y d}~d}~ww xY w)/z
    Search for titles based on a search query in both IT and EN languages.
      
    Parameters:
        - query (str): The query to search for.

    Returns:
        int: The number of unique titles found.
    itenz%[cyan]Searching in language: [yellow]
user-agent)headers/zhtml.parserdividappz	data-pageversionz[red]Site: z
 version (z), request error: Nz
/search?q=z[cyan]Search url: [yellow]true)r   z	x-inertiazx-inertia-versionz (z), request search error: propstitlesz"[red]Error parsing JSON response (z): images)postercovercover_mobile
backgroundtypefilenamer   streamz
cdn.streamz/images/translationskeyfirst_air_datevaluerelease_datelast_air_dateslugname-9999)r   r.   r/   r%   imageyearprovider_languagez![red]Error parsing a film entry ()media_search_managercleartable_show_managersetconsoleprintr   r   getr	   FULL_URLraise_for_statusr   textjsonloadsfind	Exception	SITE_NAMElog	enumerateaddreplacer   split
get_length)r   seen_ids	languageslangresponsesoupr   e
search_urldatai
dict_titletitle_idr    r&   preferred_typesptypeimg	image_urlr3   transs                        l/home/nidran/Documenti/script/streaming-community/StreamingCommunity/services/streamingcommunity/__init__.pytitle_searchr[   "   s}      uHtI YH=dVDE	$lMO-LMQQUcUlUlTmmnosntRuvH%%' >Djj54-!@!D!D[!QRS\]G
 '//0$z%I
2:,?@	$MOZ`w~-  A  E  E  FP  QH%%'	==?&&w/33H=D
 't_ <	HMAz;H%>>$/ x' X&#17R"S, E% "776?e3
8K'*wwz':H!"
    F%ay}}Z8H 	#1#:#:#B#B8\#Z"[[cdlcm nI !+!?!E2 " 99U+/??EIIgDV#(99W#5D!" !+!?!E2 " 99U+~=%))GBT#(99W#5D!" %>>/:\jnn^>\D$((#/#/#/#/3tC+&** c<	H;YHv  **,,g  	MMK(@(@'AD6Qcdecfgh	  	MMK(@(@'AD6Ibcdbefg	  	KK<TF#aSIJ	~  H9$s1#FGGHs   BN=7P .QQ5-A
Q58Q5
Q5!A4Q5Q5(AQ5+Q5=B&Q5=	O=,O88O= 	Q 	,P;;Q 	Q2Q--Q25	R>RRc                 D    t        | t        t        t        t        |      S )zE
    Wrapper for the generalized process_search_result function.
    )select_titledownload_film_funcdownload_series_funcr5   r7   
selections)r   r   r   r5   r7   )r]   r`   s     rZ   process_search_resultra      s#     &!(,1-     string_to_searchget_onlyDatabasedirect_itemr`   c                 f    t        t        t        t        t        t
        j                  | |||	      S )z6
    Wrapper for the generalized search function.
    )	title_search_funcprocess_result_funcr5   r7   	site_namerc   rd   re   r`   )r   r[   ra   r5   r7   r	   rC   )rc   rd   re   r`   s       rZ   searchrj      s2     &11- **))
 
rb   )N)NFNN)#r?   bs4r   rich.consoler   rich.promptr   StreamingCommunity.utilsr   $StreamingCommunity.utils.http_clientr   r   !StreamingCommunity.services._baser	   r
   r   5StreamingCommunity.services._base.site_search_managerr   r   
downloaderr   r   indice_useFormsgr9   r5   r7   strintr[   ra   booldictrj    rb   rZ   <module>r{      s         3 M U U i 7 

 h
)#~ "_ l- l- l-bS 4 VZ os rb   