
    i                         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mZ ddlmZmZ erdd	lmZ d
Z eg d      Z G d de      Zy)    )print_functionunicode_literalsN   )TYPE_CHECKING)VFS)bos)EXTS_AC	H_PIL_JXL
H_PIL_WEBP
thumb_path)CooldownPebkac)HttpSrvzureading the file was denied by the server os; either due to filesystem permissions, selinux, apparmor, or similar:
%r)webpjpgpngjxlc                        e Zd Zd ZddZd Zy)ThumbClic                 h   |j                   | _         |j                  | _        |j                  | _        |j                  | _        t        | j                  j                        | _        	 |j                  }|s
t               	 |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        t%        d	 | j                  j&                  D        d       }t(        xs || _        t,        xs || _        y #  dD ci c]  }|t                nc c}w }}Y xY w)
N)	thumbablepilvipsrawffiffvffar   r   r   r   r   r   r   c              3   *   K   | ]  }|d v s|  yw))r   ffN ).0xs     C/home/ubuntu/myenv/lib/python3.12/site-packages/copyparty/th_cli.py	<genexpr>z$ThumbCli.__init__.<locals>.<genexpr>4   s     JQa>6IqJs   	)brokerloglog_funcargsasrvr   th_pokecooldownth_cfg	Exceptionsetr   fmt_pilfmt_vipsfmt_rawfmt_ffifmt_ffvfmt_ffanextth_decr   can_webpr
   can_jxl)selfhsrvcknonpils        r#   __init__zThumbCli.__init__   s   kkII	II	 !!2!23	Ak!  ;x&	xxxx J$))"2"2JDQ",f *F#	 R 35 A s   *D D1D('D1c                 *    | j                  d||       y )Nthumbcli)r'   )r9   msgr;   s      r#   r&   zThumbCli.log8   s    j#q)    c                 (   |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      r:|j                  d      d   t        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(  rA| j                  j(                  s)| j*                  r| j                  j,                  r	|r|dk(  rd}|dk(  r$| j                  j.                  s| j0                  s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}| j3                  ||fz  d       y | j4                  j6                  j8                  j;                  |      }|s| j3                  d|       y t=        ||||| j                        }|g}|d d }|dk(  r-|dk7  r(|j?                  |j                  dd      d
   dz          n,|dk(  r'|j?                  |j                  dd      d
   dz          d }d }|D ]@  }	 tA        jB                  |      }|jD                  r|x}}|j                  d      d   } nd!}B |rt         j"                  jG                  |      }| jH                  jK                  |      r| jL                  jO                  d"|       |r7| jH                  jK                  |      r| jL                  jO                  d"|       |S |ry t         j"                  j%                  ||      }	 tA        jB                  |      }|jD                  rtC        jP                  |jR                        sy tU        |d#d$      5 }|jW                  d$      s
tY               	 d d d        | jL                  je                  d'||||      }|j;                         S #  Y xY w# 1 sw Y   @xY w# tZ        $ rA}|j\                  t\        j^                  k(  rta        d%      ta        d&tb        |fz        d }~wtX        $ r}ta        d&tb        |fz        d }~ww xY w)(N.dthumbdvthumbcafmp3owadathumbdithumbr    z	.hist/th/r   jwxwavjwr   r"   cropth3xfny3pz3cannot thumbnail %r: png only allowed for waveforms   zno histpath for z.jpgz.webpFTzthumbsrv.pokerb   i  i  zthumbsrv.get)3realpathrsplitlowerr   flagsr3   r	   r4   r(   no_acodeno_cafno_owar6   
startswithsplitIMG_EXTSospathjoin	th_no_jpg
th_no_webpr7   	th_ff_jpg	th_no_jxlr8   r&   r)   vfshisttabgetr   appendr   statst_sizedirnamer+   poker%   sayS_ISREGst_modeopenreadr-   OSErrorerrnoENOENTr   IOERRORask)r9   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fmtcretaborttpsttdiraprT   exr"   s                                 r#   ro   zThumbCli.get;   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>"+=+I77<<c**r7eur7Ds{tyy22s{II((==		++VyD?PDs{99&&dll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2Aw3;3%<MM%,,sA.q1F:;S[MM%,,sA.q1G;< 
	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   ;9T6T1A T' 2T' ?TT' TT$ T' '	V0<U,,V8VVN)r   )__name__
__module____qualname__r>   r&   ro   r    rB   r#   r   r      s    +@*GrB   r   )
__future__r   r   r{   rf   rq   r>   r   authsrvr   r   th_srvr	   r
   r   r   utilr   r   httpsrvr   r}   r.   re   objectr   r    rB   r#   <module>r      sJ    7  	  #   > > "  C,-kv krB   