
    i_              	           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)    )BeautifulSoup)Console)Prompt)TVShowManager)create_clientget_userAgent)site_constantsMediaManager	MediaItem)base_process_search_resultbase_search   )download_filmdownload_series   zFilm_&_Seriequeryreturnc           	         t         j                          t        j                          t        j                   d|  d}t
        j                  d|        	 t        dt               i      j                  |      }|j                          t        |j                  d
      }	 |j                  dd      }|st
        j                  d       y	|j!                  dd      }|r?|D ]7  }	 |j                  dd      }|s|j                  dd      }	|	s1|	j                  d      }
|
sE|
j                  d      }|sY|
j                  d      }d}|rN|j                  d      xs |j                  d      }|r(|j#                  d      rt        j                   | }n|}|j                  dd      }|s|j                  dd      }|s|j                  d      }|s|j%                  d      }d|v rdnd }t         j'                  t)        ||||!             : nR|j!                  dd#      }|st
        j                  d$       y	|D ]!  }	 |j                  dd%      }|s|j                  d      }
|
s/|
j                  d      }|sC|
j                  d      }d}|rN|j                  d      xs |j                  d      }|r(|j#                  d      rt        j                   | }n|}|j                  dd&      }|s|j                  dd'      }|s|j                  d      }|s|j%                  d      }d|v rdnd }t         j'                  t)        ||||!             $ t         j+                         S # t        $ r3}t
        j                  dt        j                   d|        Y d}~y	d}~ww xY w# t        $ r#}t
        j                  d"|        Y d}~	d}~ww xY w# t        $ r#}t
        j                  d(|        Y d}~d}~ww xY w# t        $ r3}t
        j                  dt        j                   d)|        Y d}~y	d}~ww xY w)*z
    Search for titles based on a search query.
      
    Parameters:
        - query (str): The query to search for.

    Returns:
        int: The number of titles found.
    z/?story=z&do=search&subaction=searchz[cyan]Search url: [yellow]z
user-agent)headersz[red]Site: z, request search error: Nr   zhtml.parserdivzdle-content)idz*[yellow]Warning: dle-content div not foundcol)class_moviezmovie-posterahrefimgsrczdata-src/z
movie-infoh2zmovie-titleT)stripz
/serie-tv/tvfilm)urlnametypeimagez)[yellow]Warning: Error parsing col item: boxz%[yellow]Warning: No movie boxes foundwrapperImageinfo	titleFilmz)[yellow]Warning: Error parsing box item: z , parsing search results error: )media_search_managercleartable_show_managerr	   FULL_URLconsoleprintr   r   getraise_for_status	Exception	SITE_NAMEr   textfindfind_all
startswithget_textaddr   
get_length)r   
search_urlresponseesoupdle_contentcolsr   	movie_div
poster_div	main_linkr$   img_tag	image_urlimg_srcinfo_div	title_tag
title_linktitletipoboxesr(   wrappers                          i/home/nidran/Documenti/script/streaming-community/StreamingCommunity/services/altadefinizione/__init__.pytitle_searchrQ      sY     "++,HUG;VWJMM.zl;< ,)HIMMjY!!# 6D|ii-i8MMFG ##E%#8 43 #w ?I$  "+n!MJ%  * 4I$ #--/C  (nnU3G $I")++e"4"OJ8O"&11#6/=/F/F.Gy,Q	,3	  )~~eL~IH#  (d= II$ !*!4J% &//d/;E $03#64FD(,,Y3UQU]f-gha4n  ((u(=EEF 0/!hhu^hDG"  !(S 1I$ #--/C  (nnU3G $I")++e"4"OJ8O"&11#6/=/F/F.Gy,Q	,3	  '||E&|AH#  (d; GI$ !*!4J% &//d/;E $03#64FD(,,Y3UQU]f-ghY0n  **,,O  N$<$<#==UVWUXYZJ ! MM$MaS"QRr ! MM$MaS"QR  N$<$<#==]^_]`abs.  5N
 $*P' P' ,O	P' O	P' O	+P' ,O	?P'  A8O	8P' 9O	P' O	"P' #<O	/P' P' O8+P' ,O8?P'  O8P' A8O8P' O8"P' #O86P' 7<O83P' 
	O)OO		O5O0*P' 0O55P' 8	P$PP' P$$P' '	Q#0)QQ#Nc                 D    t        | t        t        t        t        |      S )zE
    Wrapper for the generalized process_search_result function.
    )select_titledownload_film_funcdownload_series_funcr,   r.   
selections)r   r   r   r,   r.   )rS   rV   s     rP   process_search_resultrW      s#     &!(,1-     string_to_searchget_onlyDatabasedirect_itemrV   c                 f    t        t        t        t        t        t
        j                  | |||	      S )z6
    Wrapper for the generalized search function.
    )	title_search_funcprocess_result_funcr,   r.   	site_namerY   rZ   r[   rV   )r   rQ   rW   r,   r.   r	   r5   )rY   rZ   r[   rV   s       rP   searchr`      s2     &11- **))
 
rX   )N)NFNN)"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msgr0   r,   r.   strintrQ   rW   booldictr`    rX   rP   <module>rq      s        3 M U U i 7 

 h
)#~ "_ Z- Z- Z-~S 4 VZ os rX   