
    Kh                         d Z ddlmZmZmZ ddlmZmZ ddlm	Z	  e            Z
e
                    d          defd            Ze
                    d          d	ed
efd            ZdS )z?
Preview API endpoints
Handles real-time preview functionality
    )	APIRouterHTTPExceptionRequest)HTMLResponseFileResponse)Pathz/preview/{folder_name}folder_namec                 F  K   	 t          d          | z  }|dz  }|                                st          dd          |                    d          }t	          |          S # t          $ r  t
          $ r&}t          d	d
t          |                     d}~ww xY w)z
    Get website preview
    templates/generatedz
index.html  zWebsite not foundstatus_codedetailzutf-8)encoding)content  zPreview failed: N)r   existsr   	read_textr   	Exceptionstr)r	   website_path
index_filehtml_contentes        :/var/www/html/web-builder-api.evdpl.com/src/api/preview.pyget_previewr      s      
Q122[@!L0
  "" 	MC8KLLLL "++W+==L1111    Q Q Q4Os1vv4O4OPPPPQs   A!A& &B :!BB z/preview/asset/{file_path:path}request	file_pathc                 h  K   	 | j                             dd          }d}|rfd|v rb|                    d          }t          |          dk    r:|d                             d          d                             d          d         }|s~t	          d	          }|                                st          d
d          d |                                D             }|st          d
d          t          |d           }|j	        }t	          d	          |z  }|dz  |z  }	|	                                r|	
                                st          d
d          d}
|                    d          rd}
nc|                    d          rd|                    d          d         z   }
n/|                    d          rd}
n|                    d          rd}
t          t          |	          |
          S # t          $ r  t          $ r&}t          ddt          |                     d}~ww xY w) z
    Get static assets from generated website folder
    Determines folder name from referrer header or uses most recent folder
    referer Nz/api/preview/   /r   ?r   r   zNo generated websites foundr   c                 :    g | ]}|                                 |S  )is_dir).0fs     r   
<listcomp>z%get_preview_asset.<locals>.<listcomp>;   s%    IIIQahhjjIqIII    c                 4    |                                  j        S )N)statst_mtime)r)   s    r   <lambda>z#get_preview_asset.<locals>.<lambda>@   s    qvvxx7H r+   )keyassetzAsset not foundzapplication/octet-streamz.svgzimage/svg+xml)z.pngz.jpgz.jpegz.gifz.webpzimage/.z.cssztext/cssz.jszapplication/javascript)path
media_typer   zAsset loading failed: )headersgetsplitlenr   r   r   iterdirmaxnameis_fileendswithr   r   r   )r   r   referrerr	   partsgenerated_pathfolderslatest_folderr   
asset_filer5   r   s               r   get_preview_assetrE   #   s     4W?&&y"55 	C833 NN?33E5zzA~~#AhnnS11!4::3??B  	-!"788N!((** [#<YZZZZII."8"8":":IIIG [#<YZZZZ  -H-HIIIM',K 122[@!G+i7
  "" 	K**<*<*>*> 	KC8IJJJJ 0
f%% 	2(JJ JKK 	2!IOOC$8$8$<<JJ'' 	2#JJ&& 	21JZ!
 
 
 	

     W W W4USQRVV4U4UVVVVWs   G2G7 7H1!H,,H1N)__doc__fastapir   r   r   fastapi.responsesr   r   pathlibr   routerr7   r   r   rE   r&   r+   r   <module>rK      s    
 6 5 5 5 5 5 5 5 5 5 8 8 8 8 8 8 8 8      	$%%Q3 Q Q Q &%Q, -..9WW 9W 9W 9W 9W /.9W 9W 9Wr+   