o
    Hh
                     @  s   d dl mZ d dlZd dlmZ d dlmZ ee j	d Z
ee
d  d dlZd dlmZ ddddZdd ZejjjZdd Zeejj_dZeedeeejd< d dlmZ d dlmZ dd Zedkrne  dS dS )    )annotationsN)Path)load_dotenv   z.env)quote sstrfallbackreturnc                 C  sN   t | ts	t| } z| d | W S  ty&   ddd | D p#| Y S w )Nasciir   c                 s  s     | ]}t |d k r|V  qdS )   Nord.0ch r   ,/var/www/html/govbot/app/workers/org_sync.py	<genexpr>   s    z_ascii_only.<locals>.<genexpr>)
isinstancer	   encode	Exceptionjoin)r   r
   r   r   r   _ascii_only   s   

r   c              	   C  s   | s| S i }|   D ]W\}}t|tr.z|d |||< W q
 ty-   |dd}Y nw t|}tdd |D r]| }|dv rYzt|dd}W n tyX   t	|}Y nw t	|}|||< q
|S )	uq   헤더 값에 비 ASCII 문자가 섞이면 urllib3가 latin-1로 인코딩하지 못해 터짐 → 사전 정리zlatin-1zutf-8ignorec                 s  s    | ]	}t |d kV  qdS )   Nr   r   r   r   r   r   )   s    z$_sanitize_headers.<locals>.<genexpr>)refererreferreroriginz:/?&=#%+@,;)safe)
itemsr   bytesdecoder   r	   anylowerr   r   )hdrsnewkvr   klr   r   r   _sanitize_headers   s0   


r+   c                 K  s   t |j|_t| |fi |S )N)r+   headers
_orig_send)selfrequestkwargsr   r   r   _patched_send8   s   r1   z*GovBot/1.0 (+https://work.jjickjjicks.com)
USER_AGENT)runc               
   C  s   g } zt   W n ty! } z| d|  W Y d }~nd }~ww zt  W n tyA } z| d|  W Y d }~nd }~ww | rKtd| d S )NzMOTIE: zMOEF: z; )
sync_motier   append	sync_moefRuntimeErrorr   )errorser   r   r   r3   E   s    

r3   __main__)r   )r   r	   r
   r	   r   r	   )
__future__r   ospathlibr   dotenvr   __file__resolveparentsBASE_DIRrequestsurllib.parser   r   r+   sessionsSessionsendr-   r1   
UA_DEFAULTgetenvenvironapp.workers.motie_org_syncr3   r4   app.workers.moef_org_syncr6   __name__r   r   r   r   <module>   s*   



