B
    íWîg  ã               @   s^   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZddiZ	dd„ Z
d
dd	„ZdS )é    NÚlog_dir_pathÚlogc             C   s¬  t jd t jd dœ}dt jkr6tj t j d¡¡}n
tj ¡ }i }i }xTtjddjD ]B}|j	r„| 
|jg ¡ |j	|j ¡ f¡ qX| 
|jg ¡ |j¡ qXW y| ||||ƒ}W n0   ddi}|d  d	t|ƒ 7  < |d  d
d dd„ | ¡ D ƒ¡ 7  < |d  d7  < |d  d7  < |d  t ¡ 7  < |d  d7  < d}t j td dtj ¡  d¡ d ¡}xDt j |d ¡r´|d7 }d | d¡d d… ¡d t|ƒ }qrW t|d ddd}	|	 |d ¡ |	 ¡  Y nX d|krt|d ƒdkrt |d ƒ d|krJ|d  d¡dkr<t d|d  ƒ nt |d ƒ nt dƒ t!|d tƒrpt |d ƒ n8t"j# $¡  tt"j# %¡ dd d!}
|
 |d  ¡ ¡ |
 $¡  d S )"NZREQUEST_URIZREMOTE_ADDR)ZurlZipZHTTP_COOKIET)Zkeep_blank_valuesÚpagez*<textarea style="width:100%; height:33%;">zgeted_simple_cookies:%s
zparametrs:
Ú
c             S   s    g | ]\}}|d  t |ƒ ‘qS )ú:)Ústr)Ú.0ÚkeyÚvalue© r   ú#/var/www/html/sitepackage/cgiweb.pyú
<listcomp>*   s    zcgi_cover.<locals>.<listcomp>z</textarea>é   r   Zcgi_log_z%Y%m%d%H%M%S%fÚ_1z.txtÚ_éÿÿÿÿÚwzutf-8)ÚencodingÚcookiesr   zcontent-typez!Content-type: %s; charset=UTF-8
z(Content-type: text/html; charset=UTF-8
ÚwbF)Úclosefd)&ÚosÚenvironÚhttpr   ZSimpleCookieÚgetÚcgiZFieldStorageÚlistÚfilenameÚ
setdefaultÚnameÚappendÚfileÚreadr
   r   ÚjoinÚitemsÚ	tracebackZ
format_excÚpathÚ
__config__ÚdatetimeÚnowÚstrftimeÚexistsÚsplitÚopenÚwriteÚcloseÚlenÚprintÚ
isinstanceÚsysÚstdoutÚflushÚfileno)r   ÚinfoÚgeted_simple_cookiesÚ	parametrsÚfilesÚfÚresultÚindexr   ÚsavefileZbstdoutr   r   r   Ú	cgi_cover   s\    

"(*


r?   ú${ú}c                s6  t | tƒstdƒ‚t |tƒr¦xt| ¡ ƒD ]v\}\}}t |tƒrJt |tƒs*ytdt||gƒƒ‚W q*   t |tƒs‚tdt|ƒƒ‚nt |tƒsštdt|ƒƒ‚Y q*X q*W ntdƒ‚tt t 	ˆ¡d t 	ˆ ¡ | ¡ƒ}t‡ ‡fdd„| 
¡ D ƒƒ}t||A ƒd	krtj td
 dtj ¡  d¡ d ¡}	d	}xDtj |	d ¡rn|d7 }d |	 d¡d d… ¡d t|ƒ }	q,W t|	d ddd}
|
 d¡ |
 tt|ƒƒ¡ |
 d¡ |
 tt|ƒƒ¡ |
 d¡ |
 tt||A ƒƒ¡ |
 d¡ |
 t| ƒ¡ |
 ¡  t dt¡ x*| ¡ D ]\}}|  ˆ| ˆ  |¡} qW | S )NzError: template text not strz*Error: template param key or value not strz!Error: template param key not strz#Error: template param value not strzError: template param not dictu   [\w_ Ð°-ÑÐ-Ð¯Ñ‘Ð]+c                s   g | ]}ˆ| ˆ  ‘qS r   r   )r   r	   )ÚendÚstartr   r   r   c   s    ztemplate.<locals>.<listcomp>r   r   Ztemplate_log_z%Y%m%d%H%M%S%fr   z.txtr   r   r   r   Úutf8)r   z
text_set:
z
param_set:
z
diferents:
z
text:
z;Count of placeholder in text not equal with parametrs count)r2   r   Ú	ExceptionÚdictÚ	enumerater$   ÚsetÚreZfindallÚescapeÚkeysr0   r   r&   r#   r'   r(   r)   r*   r+   r,   r-   r.   Úsortedr/   ÚwarningsÚwarnÚWarningÚreplace)ÚtextZparamrC   rB   r=   r	   r
   Ztext_setZ	param_setr   r>   r   )rB   rC   r   ÚtemplateS   sN    



$*



rR   )r@   rA   )r   r%   r3   r(   r   Zhttp.cookiesr   rI   rM   r'   r?   rR   r   r   r   r   Ú<module>   s   >