
    ki*                        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
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"\RG                  S5      \RI                  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../ZFS/z./v2FS/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/zs/fastAPI-2.pylogr-   D   sO    ''(;<I+RuB'I	h	

9 
		s   A
A&z/{PATH0:path}reqDataPATH0r+   c           
        #    US:X  a  g Su  p4nS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S
:X  a  U R                  5       I S h  vN n	O[        U R                  5      n	U(       a3  US   U:X  a  UR                  S5        US   nS	R                  USS  5      nUS:X  a  SnSnO=US:X  a  SnSnO2UR                  S5      (       a  US:X  a	  SU-   S-   nOSU-   S	-   U-   nSnUS:X  d  US:X  a  gU R                  5       I S h  vN n[        U-   nUn[        SS5        [        SU R                   5        [        SU5        [        SU5        [        SU R                  5        [        SU5        [        SU	5        [        SU
5        [        SU5        [        SU5        [        S U5        [        S!U5        [        S"U5        [        S!U5        [        S#S5        US$:X  a  [        S%S&0S'S(9$ US):X  Gav  UR*                  nUR                  S*5      (       a  UR,                  R/                  S+5      nUR                  S,5      S   R1                  5       R3                  5       n[        UR                  SS5      -   nUS--   nUR,                  R5                  S5        ["        R6                  " US.S/9  Og[        UR                  S0S15      R                  SS5      -   nUS	-   UR*                  -   n["        R$                  R9                  U5      (       d  S2S3U S430$ [        S5US6U5        [;        US75       n[<        R>                  " UR,                  U5        S S S 5        UR*                  S8S9.$ US:X  aP  [        U-   n[        S:U5        ["        R$                  R'                  U5      (       a  [)        U5      $ [        S%S&0S'S(9$ US;:X  a  [        UR                  SS5      -   n["        R$                  R9                  U5      (       a  S<S=U S>30$ ["        R6                  " US.S/9  ["        R$                  R9                  U5      (       a  S<S=U S?30$ g US@:X  a  [        SA5        [        UR                  SS5      -   n["        R$                  R'                  U5      (       a  S<S=U S>30$ [;        USB5      RA                  5         ["        R$                  R'                  U5      (       a  S<S=U S?30$ g USC:X  a|  ["        R$                  R9                  U5      (       aV  ["        RB                  " U5       Vs/ s H4  n["        R$                  R9                  US	-   U-   5      (       a  US	-   OUPM6     sn$ / $ USD:X  aX  U(       d  SEOUSF   n["        RB                  " U5      n[D        RD                  " UUUXLUX5      n[G        SR                  U5      SGSH9$ USI:X  Ga  [        SJU5        [        U-   n/ n["        RB                  " U5       GH  nUS	-   U-   n["        RH                  " U5      n[H        RJ                  " URL                  5      n["        R$                  R9                  U5      (       a  SKO!["        R$                  RO                  U5      S   nU[P        R                  US5      U["        R$                  RS                  U5      [T        RV                  " URX                  5      USL.nUSK:X  a,  ["        R$                  R'                  U SM35      (       a  SNUSO'   USP:X  a  ["        RB                  " U5      USQ'   USC:X  aD  Sn [;        USR-   SS5       nUR/                  5       n S S S 5        U (       a  UR[                  SCU 05        UR[                  U5        [        STU5        GM     U$ g s  snf  GN_ GN! , (       d  f       GN_= fs  snf ! , (       d  f       No= f! [\         a  n![_        SUSVU! 3SW9eS n!A!ff = f7f)XNzfavicon.ico )r1   r1   r1   zContent-Typehost?@z/@/zapplication/jsonr      getFilez
index.htmlzlib-jszoba/@zshlo.oba/lib-jsz.obazoba/z/index.htmlnullz94:  z0################################################z95:  headersz
95:  PATH0123z96:  query      :z97:  contentTypez	98:  argsz99:  queryParamsz100: path_tokensz91: path       :z92: path_tokens:z93: route      :z95: tmp_path   :z101:  umsERRORzFile not foundi  )contentstatus_code
uploadFilez.zx      
z/default.zxT)exist_okpathuploaderrorzdir 'z' not exit z235:z
236:wbzFile uploaded successfully!)filenamer(   z148:zmkr(   zDirectory 'z' already exists.z' created successfully.zcfz224: zcfr"   lszls.htmlhomez	text/html)r<   
media_typezls.jsonz250:r   )r   typefileExtsizemtimeaccessz
/thumb.jpgz	thumb.jpgthumbtthread_listz/lsrz105:i  z*An error occurred while reading the file: )r=   detail)0headersgetdictquery_paramsr   _dictreplacesplitjsonpopjoinendswithformZFS_DIRprintr
   r:   osrB   isfiler   rF   r+   readdecodestripseekmakedirsisdirr%   shutilcopyfileobjcloselistdirls_htmlr	   statfilemodest_modesplitext	fileTypesgetsizetimectimest_mtimeappend	Exceptionr   )"r.   r/   r+   routerB   tmp_pathtppcontentTyper2   argsqueryParamstokenpath_tokensformDatafilePathfileNameheader
upload_dir	file_pathbufferdir_path_r   rI   htmlentriesentry
entry_path
entry_statpermissionsrN   
entry_infor<   es"                                     r,   corer   N   s     baf #-hoo)).9oo))&1G001EIcIg&:&:&@&@AAr*/--D*A*G*G*LV*LPUu*LV
 ..glln8L7//0t A$&);&q>E((;qr?3D B;IeLthi6M ^^F##rz6%<#=D#)%<#3D#8DE6>Um3B '4<gvngoo.lE"eX!G$8$89 +.k4  +. +. 4( +/ %) (+ %)h  E>2B(CQTUU2 l"}}H  ''!YY^^C0#\\%03::<BBD$t||C'>>
'6			q!J6 %x||FH'E'M'McSW'XX
'^DMM9	ww}}Z00#uZL%DEE&*h5
 i&&""499f5 ' !%6STT it|H&($ww~~h''#H--#W6F,GUXYY e^t||C66Hww}}X&&TFJ[7\/](]KK40ww}}X&&TFJa7b/c(c&e^*S$ 77Iww~~i((%;tfL]9^1_*_C &&(ww~~i((%;tfLc9d1e*e( d]ww}}X&&ikisist|i}1~i}de277==RUVW;X;X!C%^_2_i}1~)~02 i"-F;r?EH%B??r8	#D
 %RWWT]{SS i&$~H GH-&sl50
 ggj1
"mmJ,>,>?$&GGMM*$=$=&277CSCSTYCZ[\C] !&(}}Wb9&!wwz:#zz**=*=>*
 f$:,j8Q)R)R*5Jw' C<02

:0FJ}- D= Gd5j#.$"&))+ /W~6z*fj)I .L Na  G W
 9M6 (X '&N 2p /.  f6`ab`c4deefsC  bB a' +
`49`4?a' `9B(a' ba' `<C(a'  bD)a' *b+a' "`?'a' =b>A	a' ba' bA
a' bA a' b!Aa' 6b7Aa' <b>Aa'  ;a;a' =b>a' ?b Aa' bE>a' a-Aa' 2b4a' <a' ?
a	a' 
a$	 a' '
b1a>>bb)'rm   uvicornfastapir   r   r   r   r   r   fastapi.responsesr	   r
   r   r   fastapi.middleware.corsr   urllib.parser   rx   re   rr   fnmatchretypingr   r   r   r   rq   appadd_middlewarerc   r&   rv   r-   rX   poststrr        r,   <module>r      s     L L U U 2 "  	   	 !  
  
   %%%     #	( /@DT
 df df df: df  dfr   