
    i                         d dl Z d dlZd dlmZmZ d dlmZ ddlmZ  e       Zdee	   fdZ
deee	   ee	   f   fdZdee	   fd	Zdee	   fd
Zdeee	   ee	   f   fdZy)    N)OptionalTuple)Console   )binary_pathsreturnc                  B   t         j                  } | dk(  rdnd}t        j                  |      }|r|S t        j                  d|      }|r!t
        j                  j                  |      r|S t        j                  d|      }|r|S t        j                  d| d       y)	z
    Check for a Bento4 binary and download if not found.
    Order: system PATH -> binary directory -> download from GitHub
    windowszmp4decrypt.exe
mp4decryptbento4Failed to download redstyleNr   systemshutilwhichget_binary_pathospathisfiledownload_binaryconsoleprintsystem_platformbinary_execbinary_pathbinary_localbinary_downloadeds        U/home/nidran/Documenti/script/streaming-community/StreamingCommunity/setup/checker.pycheck_bento4r#      s    
 #))O&5&B"K ,,{+K  //+FL|4 %44X{K  MM'}5UMC    c                  &   t         j                  } | dk(  rdnd}| dk(  rdnd}t        j                  |      }t        j                  |      }|r|r||fS t        j                  d|      }t        j                  d|      }|rDt
        j                  j                  |      r%|r#t
        j                  j                  |      r||fS t        j                  d|      }t        j                  d|      }|r|r||fS t        j                  dd       y	)
z
    Check for FFmpeg executables and download if not found.
    Order: system PATH -> binary directory -> download from GitHub
    r
   z
ffmpeg.exeffmpegzffprobe.exeffprobezFailed to download FFmpegr   r   NNr   )	r   ffmpeg_nameffprobe_nameffmpeg_pathffprobe_pathffmpeg_localffprobe_localffmpeg_downloadedffprobe_downloadeds	            r"   check_ffmpegr1   0   s    
 #))O"1Y">,HK$3y$@=iL ,,{+K<<-L|L((  //+FL 00<HM|4277>>ZgKh]** %44X{K%55hM/ "444MM-UM;r$   c                  <   t         j                  } | dk(  rdnd}t        j                  |      }|r|S t        j                  d|      }|r!t
        j                  j                  |      r|S t        j                  d|      }|r|S t        j                  dd       y)z{
    Check for megatools and download if not found.
    Order: system PATH -> binary directory -> download from GitHub
    r
   zmegatools.exe	megatoolszFailed to download megatoolsr   r   Nr   )r   megatools_namemegatools_pathmegatools_localmegatools_downloadeds        r"   check_megatoolsr8   R   s    
 #))O(79(D_+N \\.1N #22;OO277>>/: (77^T##MM0M>r$   c                  B   t         j                  } | dk(  rdnd}t        j                  |      }|r|S t        j                  d|      }|r!t
        j                  j                  |      r|S t        j                  d|      }|r|S t        j                  d| d       y)	z
    Check for N_m3u8DL-RE binary and download if not found.
    Order: system PATH -> binary directory -> download from GitHub
    r
   zN_m3u8DL-RE.exezN_m3u8DL-REn_m3u8dlr   r   r   Nr   r   s        r"   check_n_m3u8dl_rer;   p   s    
 #))O'6)'C#K ,,{+K  //
KHL|4 %44ZM  MM'}5UMCr$   c                  <   t         j                  } | dk(  rdnd}t        j                  |      }|r|S t        j                  d|      }|r!t
        j                  j                  |      r|S t        j                  d|      }|r|S t        j                  dd       y)	z
    Check for Shaka Packager executables and download if not found.
    Order: system PATH -> binary directory -> download from GitHub
    r
   zpackager.exepackagershaka_packagerz!Failed to download Shaka Packagerr   r   r(   r   )r   packager_namepackager_pathpackager_localpackager_downloadeds        r"   check_shaka_packagerrC      s    
 #))O&5&BN
M LL/M "112BMRN"''..8 '667GW""MM5UMCr$   )r   r   typingr   r   rich.consoler   r   r   strr#   r1   r8   r;   rC    r$   r"   <module>rH      s    
  " ! ' )hsm 8eHSM8C=89 D# <8C= 8eHSM8C=$@A r$   