
    hT                         d dl mZmZ d dlZd dlZd dlZddlmZ ddlm	Z	 ddl
m
Z
 ddlmZmZmZ ddlmZmZ erdd	lmZ d
Z G d de      Zy)    )print_functionunicode_literalsN   )TYPE_CHECKING)VFS)bos)EXTS_AC	HAVE_WEBP
thumb_path)CooldownPebkac)HttpSrvzureading the file was denied by the server os; either due to filesystem permissions, selinux, apparmor, or similar:
%rc                        e Zd Zd ZddZd Zy)ThumbClic                 <   |j                   | _         |j                  | _        |j                  | _        |j                  | _        t        | j                  j                        | _        	 |j                  }|s
t               	 |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        t#        d | j                  j$                  D        d       }t&        xs |dk(  | _        y #  dD ci c]  }|t                nc c}w }}Y xY w)	N)	thumbablepilvipsffiffvffar   r   r   r   r   r   c              3   *   K   | ]  }|d v s|  yw))r   r   N ).0xs     E/jellyfin/media/venv/lib/python3.12/site-packages/copyparty/th_cli.py	<genexpr>z$ThumbCli.__init__.<locals>.<genexpr>.   s     Fo1E!Fs   	)brokerloglog_funcargsasrvr   th_pokecooldownth_cfg	Exceptionsetr   fmt_pilfmt_vipsfmt_ffifmt_ffvfmt_ffanextth_decr
   can_webp)selfhsrvckds        r   __init__zThumbCli.__init__   s    kkII	II	 !!2!23	VAk! 
 ;x&	xxx FTYY--FM!0Q&[	V#TUaCEUUAUs   *C9 9D?DDc                 *    | j                  d||       y )Nthumbcli)r    )r0   msgr2   s      r   r   zThumbCli.log1   s    j#q)    c                 t
   |j                   }|j                  d      d   j                         }|| j                  vsd|j                  v ry || j
                  v }|rd|j                  v ry |t        v }|| j                  v }	|xr || j
                  v }
|	s|
rd|rS| j                  j                  ry |dk(  r| j                  j                  rd}n0|dk(  r+| j                  j                  rd}nd|j                  v ry |ry | xr |	 }|rd	|j                  v ry | j                  j                  r| j                  j                  d
   nd}|j                  d      r6|j                  d      d   dv r t        j                   j#                  ||      S |d d dv r|dk7  r|d d }|dk(  r| j                  j$                  rd}|dk(  rC| j                  j&                  s+|r| j(                  r| j                  j*                  r	|r|dk(  rd}|j                  d   }|j                  d   }d|v r|d|v rdndz  }n|d|v rdndz  }d|v r|d|v rdndz  }n|d|v rdndz  }|}n%|d d dk(  r|	s|sd}| j-                  ||fz  d       y | j.                  j0                  j2                  j5                  |      }|s| j-                  d|       y t7        ||||| j                        }|g}|d d dk(  r,|dk7  r'|j9                  |j                  dd      d
   dz          d }d}|D ]@  }	 t;        j<                  |      }|j>                  r|x}}|j                  d      d   } nd }B |rt        j                   jA                  |      }| jB                  jE                  |      r| jF                  jI                  d!|       |r7| jB                  jE                  |      r| jF                  jI                  d!|       |S |ry t        j                   j#                  ||      }	 t;        j<                  |      }|j>                  rt=        jJ                  |jL                        sy tO        |d"d#      5 }|jQ                  d#      s
tS               	 d d d        | jF                  j_                  d&||||      }|j5                         S #  Y xY w# 1 sw Y   @xY w# tT        $ rA}|jV                  tV        jX                  k(  rt[        d$      t[        d%t\        |fz        d }~wtR        $ r}t[        d%t\        |fz        d }~ww xY w)'N.dthumbdvthumbcafmp3owadathumbdithumbr    z	.hist/th/)webpjpgpngr   jwwavjwffcropth3xfny3pz3cannot thumbnail %r: png only allowed for waveforms   zno histpath for z.jpgFTzthumbsrv.pokerb   i  i  zthumbsrv.get)0realpathrsplitlowerr   flagsr+   r	   r,   r!   no_acodeno_cafno_owar.   
startswithsplitospathjoin	th_no_jpg
th_no_webpr/   	th_ff_jpgr   r"   vfshisttabgetr   appendr   statst_sizedirnamer$   poker   sayS_ISREGst_modeopenreadr&   OSErrorerrnoENOENTr   IOERRORask)r0   dbvremmtimefmtptopextis_vid	want_opusis_auis_vauis_img	preferredsfmtvf_cropvf_th3xthistpathtpathtpathsretaborttpsttdiraprO   exr   s                                r   rh   zThumbCli.get4   s   ||jjob!'')dnn$CII(=$i399,7N	t||#2sdll2F99%%E\dii&6&6CE\dii&6&6C		))E	i399,+/99+;+;DII$$Q'	>>+&399S>"+=AW+W77<<c**r7d?se|r7Ds{tyy22s{II((t}}		++VyD?PDii'Gii'Gg~sg~25sczr1g~sg~25sczr1C!W^E&EAHHQ#Z#99==((,,T2HHT348S%dllCr7c>cUlMM%,,sA.q1F:; 
	B	XXb\::"$$C%**S/!,C E
	 77??5)D}}!!$'6==%%e,KKOOOU;JWW\\$$	/"B::T\\"**%=b$" &avvay#+% !& KKOOND#ucBuuwI.& &  	3xx5<<'Sk!S'RE/22 	/go..	/sU   !9R9R9A S S %SS 9R>S
S 	T7<TT7T22T7N)r   )__name__
__module____qualname__r5   r   rh   r   r9   r   r   r      s    16*@r9   r   )
__future__r   r   rt   r`   rj   r5   r   authsrvr   r   th_srvr	   r
   r   utilr   r   httpsrvr   rv   objectr   r   r9   r   <module>r      s?    7  	  #   2 2 "  C_v _r9   