
    wi>                        S SK r S SKrS SKJrJrJrJrJrJr  S SK	J
r
JrJrJr  S SKJr  S SKJr  S SKrS SKrS SKrS SKrS SKrS SKJrJr  S SKJr  S SKJr  S SKrS SKr\" S	S
SS9r\R?                  \S/SS/S/S9  Sr Sr!SSSSSSSSSSSSSSS.r"S r#S r$\RK                  S5      \RM                  S5      \" S5      4S\S\'S\4S jj5       5       r(g)    N)FastAPI
UploadFileFileHTTPExceptionQueryRequest)PlainTextResponseJSONResponseFileResponseResponse)CORSMiddleware)	urlencode)IteratorList)glob)datetimezshlozzshlo serverz1.1.0)titledescriptionversion*T)allow_originsallow_credentialsallow_methodsallow_headersz
/root/ZFS/z	./log.txtimgtxtdir)z.pngz.jpgz.jpegz.svgz.webpz.jsz.cssz.htmlz.mdz.jsonz.txtz.pyz.csv.dirc                     [         R                  " 5       R                  S5      nU SU  S3n[        [        S5       nUR                  U5        S S S 5        g ! , (       d  f       g = f)Nz%Y-%m-%dT%H:%M:%Sz; 
a)r   nowstrftimeopenlog_filewrite)msg	timestamp	log_entryfiles       "/root/zsrc/*zsrv_dev-zcode/main.pylogr-   E   sO    ''(;<I+RuB'I	h	

9 
		s   A
A&c                    [        SU 5        / SQn/ n[        R                  " U 5       H  nU S-   U-   nUR                  SU-   5        [        R                  R                  U5      (       a  UR                  S5        MV  US:X  a+  [        US5       nUR                  5       nXaS'   S S S 5        M  US:X  d  UR                  S	5      (       d  M  [        US5       nUR                  5       nUR                  S
U-   S-   5        UR                  U5        S S S 5        M     SSR                  U5      -   US'   SR                  U5      $ ! , (       d  f       GM.  = f! , (       d  f       GMA  = f)Nz342:) r/   r/   r/   /z
-zzrr   zlsz..zlsz
/r!   z
/zdir
r/      )
printoslistdirappendpathisdirr%   readendswithjoin)dirPathztxttmp	entryNameabs_pathr+   r   s          r,   get_ztxtrC   M   s-    
&' DCZZ(	3;y(

5)#$77==""CJJsOX$h$yy{Q %$ 5 I$6$6w$?$?h$yy{E)OD01C  %$ )$ "''#,&DG 774> %$ %$s   E9E
E	
E*	z/{req_path:path}reqDatareq_pathr+   c                   #    US:X  a  g U R                   R                  S5      nU R                   R                  S5      nU R                   R                  S5      n[        U R                  5      nU(       a"  S[	        U R                  R
                  5      -   OSnUR                  SS5      R                  S	5       Vs/ s H  o(       d  M  UPM     n	nU R                  5       I S h  vN n
[        S
S5        U(       d  US:X  a  U R                  5       I S h  vN nUS :X  a  0 nSu  pU	n[        SX5        [        U5      S:X  a  Su  pOUS   S   S:X  a  US   S	R                  USS  5      pOlUS   R                  S5      (       aA  [        U5      S:X  a  SS	R                  S/U-   S/-   5      pO)SS	R                  S/U-   5      pOSS	R                  U5      p[        SU5        [        SU5        US:X  an  [        R                  R!                  W5      (       a  SSU S30$ [        R"                  " USS9  [        R                  R!                  U5      (       a  SSU S 30$ g US!:X  a  [        S"5        g US:X  Ga  [$        U-   n[        S#U5        [        R                  R!                  U5      (       az  [        S$U5        [        R&                  " U5       Vs/ s H4  n[        R                  R!                  US	-   U-   5      (       a  US	-   OUPM6     nn[)        S%R                  U5      S&S'9$ [        R                  R+                  U5      (       a  [-        U5      $ [        R                  R+                  US(-   5      (       a  [-        US(-   5      $ [        R                  R+                  US)-   5      (       a  [-        US)-   5      $ [        R                  R+                  US*-   5      (       a  [-        US*-   5      $ [        R                  R+                  US+-   5      (       a  [-        US+-   5      $ S,S-0$ US.:X  Ga  [$        U-   nXp[        S/WU	5        [        S0U5        [        S0U5        U(       a6  [$        U-   n[        R                  R!                  U5      (       d  S,S1U S230$ OUR.                  nUR                  S35      (       a  UR0                  R3                  S45      nUR                  S55      S   R5                  5       R7                  5       nWS6-   nUR0                  R9                  S5        [        R"                  " USS9  [        S7WS8U5        [        R                  R!                  W5      (       aE  [;        WS95       n[<        R>                  " UR0                  U5        S S S 5        UR.                  S:S;.$ g US:X  Ga  [$        S<-   n[$        U-   nSnS=n[        S>U5        [        S?U5        [        R                  R+                  U5      (       a%  [;        US@5       nUR3                  5       nS S S 5        [        R                  R+                  U5      (       a&  [;        US@5       nUR3                  5       nS S S 5        O[        R                  R+                  US*-   5      (       a)  [;        US*-   S@5       nUR3                  5       nS S S 5        OP[        R                  R+                  US+-   5      (       a)  [A        U5      n[        SAUS SB 5        [        SCUS SB 5        SDU;   aQ  S	R                  U	SS  5      nSEUR7                  S	5      -   SF-   nSGnUR                  SHU5      nUR                  SIU5      n[        U5      (       a-  [        SJ[        U5      5        UR                  SISKU-   SL-   5      n[C        US&S'9$ USM:X  aD  [$        U-   n[        S$U5        [        R&                  " U5      n[)        S%R                  U5      SNS'9$ U	SO   SP;   a.  [        SQ5        [D        RD                  " X5      u  nn[C        UUS'9$ U	(       Ga  U	S   SR:X  Ga  [$        S	R                  U	SS  5      -   nXp[        S/WU	5        [        S0U5        [        S0U5        SSU;   Gav  UR.                  nUR                  S35      (       a  UR0                  R3                  S45      nUR                  S55      S   R5                  5       R7                  5       n[$        UR                  SS5      -   nUS6-   nUR0                  R9                  S5        [        R"                  " USS9  Og[$        U
R                  STSU5      R                  SS5      -   nUS	-   UR.                  -   n[        R                  R!                  U5      (       d  S,S1U S230$ [        S7US8U5        [;        US95       n[<        R>                  " UR0                  U5        S S S 5        UR.                  S:S;.$ SVU;   Ga}  [        SWU5        Un/ n[        R&                  " U5       GHP  nUS	-   U-   n [        RF                  " U 5      n![F        RH                  " U!RJ                  5      n"[        R                  R!                  U 5      (       a  SXO![        R                  RM                  U5      S   n#U[N        R                  U#S5      U#[        R                  RQ                  U 5      [R        RT                  " U!RV                  5      U"SY.n$U#SX:X  a,  [        R                  R+                  U  SZ35      (       a  S[U$S\'   US]:X  a  [        R&                  " U 5      U$S^'   URY                  U$5        [        S_U$5        GMS     U$ SDU;   a  US:X  a  [        R                  R+                  U5      (       d  [[        S`Sa0SbSc9$ S=n[        SdU5        [;        US@5       nUR3                  5       nS S S 5        SenSGnUR                  SHU5      nUR                  SIU5      n[C        US&S'9$ [[        S`Sa0SbSc9$ g g s  snf  GNr GNDs  snf ! , (       d  f       GN= f! , (       d  f       GN>= f! , (       d  f       GNf= f! , (       d  f       GNx= f! , (       d  f       GN= f! , (       d  f       N= f! [\         a  n%[_        SfSgU% 3Sh9eS n%A%ff = f7f)iNzfavicon.icor/   zContent-Typehostreferer?@z/@r0   z94:  z0################################################zapplication/json)r/   r/   z161:r   ):zoboba/zshlo.oba/index.html:r4   z.obaz:rxobaz
index.htmlrK   z165:  reqType: z165:  path   : z:mkr(   zDirectory 'z' already exists.T)exist_okz' created successfully.z:rmz222:z200: path: z295:r!   z	text/html)content
media_typez.ztz.zcz.zzz/zzerrorzfile path invalid z:wxz157: ZFS     :- z157: filePath:- zdir 'z' not exit z.zx      
z/default.zxz235:z
236:wbzFile uploaded successfully!)filenamer(   rL   zindex file not foundz364:z365:r2   z385:   z386:pwaz<link rel="manifest" href="/z/manifest.json"></head>z'<script src="./pwa.js"></script></body>z</head>z</body>z387: ztxt_lenz+<script>window.onload = () => {const s3 = `z)`; z = zparse(s3); zrender(z); }</script>z:lsz
text/plain)zmanifest.jsonzpwa.jsz	pwa_sw.jsz174:---zfs
uploadFiler9   uploadzls.jsonz250:r   )r   typefileExtsizemtimeaccessz
/thumb.jpgz	thumb.jpgthumbtthread_listz105:ERRORzFile not foundi  )rP   status_codez287:z3<link rel="manifest" href="./manifest.json"></head>i  z*An error occurred while reading the file: )rf   detail)0headersgetdictquery_paramsr   _dictreplacesplitformr5   jsonlenr=   r<   r6   r9   r:   makedirsZFS_DIRr7   r	   isfiler   rV   r+   r;   decodestripseekr%   shutilcopyfileobjrC   r   rX   statfilemodest_modesplitext	fileTypesgetsizetimectimest_mtimer8   r
   	Exceptionr   )&rD   rE   r+   contentTyperG   ref_urlargsqueryParams_path_tokensformDatareqTyper9   r>   lsfilePathr?   upload_pathfileNameheader
upload_dir	file_pathbufferhtml_filePathhtml_txtr@   headbodyr   mimeentriesentry
entry_path
entry_statpermissionsr^   
entry_infoes&                                         r,   corer   w   s-     = Xf oo)).9oo))&1oo)))47//0EIcIg&:&:&@&@AAr"*"2"23t"<"B"B3"GM"GQ1q"GM#LLN*gv (::',,.DXT4<$   	fa"V\5XNGdqT!W^QqTSXXae_dqT]]6""1v!|USXXwqyR^Q_G_=`d5:SXXwqy=Qd5;SXXa[d 	)&
 eww}}W%%uD6IZ6[.\'\KK$/ww}}W%%uD6I`6a.b'b% uV}4<D-&ww}}T""fd#JL**UYJZ[JZQd3hqj 9 9quq@JZ[(2;WW%%L4F-FU
++Le4L-LU
++Le4L-LU
++Le4L-LU
++Le4L-L5<>R4S-S4<D !%g$d[:$h0$d, %dlww}}[11#u[M%EFF 2  ==$$U++!%!4F!'e!4Q!7!>!>!@!F!F!HD!+]!:KIINN1%KK
T: fj(D9 ww}}[)))T*f&&tyy&9 + %)MM:WXX	 *  $$>>M#DLHD-H&-(&(#
 ww~~m,,-- $		H . ww~~h''(C(D IIKD )( //(5.#.$ IIKD /. //)f#/fTc
+ }88KO498>>#;NNOhhD#++It<#++It< 4yyos4y2#+++-125   HEE 4<D&$::d#B %TYYr]|TT _ II)6ICCD99 [^e3388KO44D !%g$d[:$h0$d,
 $==$$U++!%!4F!'e!4Q!7!>!>!@!F!F!HD!(4<<T+B!BJ!+]!:IIINN1%KK
T: ")8<<+I+Q+QRUW[+\!\J!+C!=I77==44 '5K)HIIfj(D9
 )T*f&&tyy&9 + %)MM:WXX d"fd# ZZ0E")#+e"3J"$''*"5J"&--
0B0B"CK(*j(A(AfrwwGWGWX]G^_`GaG %*#,=="#=#*#%77??:#>#'::j.A.A#B#."J &(RWW^^zl*<U-V-V.9
7+ |46JJz4J
=1 NN:.&*-I 1L  }qww~~h//':J0KY\]]1fh' (C(D $		H ) QD#++It<#++It<[II $W6F,GUXYYs 4[M N*  EYl \b +*& .-
 )( /.n +*D )(B  f6`ab`c4deefs  s/B4s ?
qqs (q)0s qDs &s/'A s 's/)s :s/;A$s ;q s 4s/5.s #s/$4s s/4s s/4s s/4s 7s/8s ;s/<A2s .s//C!s "q%2s s/
A%s /q7 8s 8r		?s rC6s s/A	s s/6s s/E=s s/s )"r-s !s/"Fs %s/&;s !s/"s <r?9s s/s s/s s  s %
q4/s 7
rs 	
rs 
r*%s -
r<7s ?
s	s 
s,s''s,,s/))rx   uvicornfastapir   r   r   r   r   r   fastapi.responsesr	   r
   r   r   fastapi.middleware.corsr   urllib.parser   r   r6   rz   fnmatchretypingr   r   r   r   ls_htmlrX   appadd_middlewarers   r&   r~   r-   rC   ri   poststrr        r,   <module>r      s      L L U U 2 "  	   	 !  
  
 
   %%%   
  #	('T 	
CG: ]f ]f3 ]fj ]f  ]fr   