Ë
    å°ùiK  ã                   óÀ  — d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlZd dl	m
Z
mZ e j                  j                  e j                  j                  e j                  j                  e«      «      «      Ze j                  j#                  ed«      ZdZ e j(                  ed¬«       d	ed
efd„Zd	ed
efd„Zd	ed
ee   fd„Zd	ed
ee   fd„Zded
efd„Zddeded
efd„Zy)é    N)ÚBytesIO)ÚurlparseÚparse_qs)ÚImageÚUnidentifiedImageErrorÚdesignz/pod-api/designT)Úexist_okÚurlÚreturnc                 ó°   — t        | xs d«      j                  «       }|syg d¢}|D ]-  }t        j                  ||«      }|sŒ|j	                  d«      c S  y)NÚ )z/file/d/([a-zA-Z0-9_-]+)z[?&]id=([a-zA-Z0-9_-]+)z/d/([a-zA-Z0-9_-]+)é   )ÚstrÚstripÚreÚsearchÚgroup)r
   ÚrawÚpatternsÚpatternÚmatchs        ú:/var/www/pod-logistic/pod-api-clone/utils/design_helper.pyÚ_extract_google_drive_file_idr      s\   € Ü
ˆcŠi�R‹.×
Ñ
Ó
 €CÙØò€Hð ò "ˆÜ—	‘	˜' 3Ó'ˆÚØ—;‘;˜q“>Ò!ð"ð
 ó    c                 óš   — t        t        | xs d«      j                  «       «      j                  xs dj	                  «       }d|v xs d|v S )Nr   údropbox.comúdropboxusercontent.com)r   r   r   ÚnetlocÚlower)r
   Úhosts     r   Ú_is_dropbox_urlr!   $   sG   € Ü”S˜š “^×)Ñ)Ó+Ó,×3Ñ3Ò9°r×@Ñ@ÓB€DØ˜DÐ ÒDÐ$<ÀÐ$DÐDr   c                 óD  — t        | xs d«      j                  «       }|sg S t        |«      }t        |j                  «      }g }d|j
                  j                  «       v r|j                  |«       d|j
                  j                  «       v rÅdg|d<   dj                  d„ |j                  «       D «       «      }|j                  |¬«      j                  «       }|j                  |«       t        |«      }dg|d	<   dj                  d
„ |j                  «       D «       «      }|j                  |¬«      j                  «       }	|j                  |	«       |j                  |«       t        «       }
g }|D ],  }|sŒ||
vsŒ|
j                  |«       |j                  |«       Œ. |S )Nr   r   r   Ú1Údlú&c              3   ó>   K  — | ]  \  }}|D ]  }|› d |› �–— Œ Œ y­w©Ú=N© ©Ú.0ÚkeyÚvaluesÚvalues       r   ú	<genexpr>z0_build_dropbox_candidate_urls.<locals>.<genexpr>;   s<   è ø€ ò !
á��VØò!
ð ð ˆe�1�U�GÔð!
Øñ!
ùó   ‚)Úqueryr   c              3   ó>   K  — | ]  \  }}|D ]  }|› d |› �–— Œ Œ y­wr'   r)   r*   s       r   r/   z0_build_dropbox_candidate_urls.<locals>.<genexpr>F   s<   è ø€ ò %
á��VØò%
ð ð ˆe�1�U�GÔð%
Øñ%
ùr0   )r   r   r   r   r1   r   r   ÚappendÚjoinÚitemsÚ_replaceÚgeturlÚdictÚsetÚadd)r
   r   Úparsedr1   Ú
candidatesÚrebuilt_queryÚ
direct_urlÚ	query_rawÚrebuilt_query_rawÚraw_urlÚseenÚresultÚitems                r   Ú_build_dropbox_candidate_urlsrE   )   s‚  € Ü
ˆcŠi�R‹.×
Ñ
Ó
 €CÙØˆ	ä�c‹]€FÜ�V—\‘\Ó"€Eà€Jð   6§=¡=×#6Ñ#6Ó#8Ñ8Ø×Ñ˜#Ôð ˜Ÿ™×+Ñ+Ó-Ñ-à�eˆˆd‰ØŸ™ñ !
à$Ÿ{™{›}ô!
ó 
ˆð
 —_‘_¨=�_Ó9×@Ñ@ÓBˆ
Ø×Ñ˜*Ô%ô ˜“Kˆ	Ø˜5ˆ	�%ÑØŸH™Hñ %
à(Ÿ™Ó0ô%
ó 
Ðð
 —/‘/Ð(9�/Ó:×AÑAÓCˆØ×Ñ˜'Ô"à×Ñ�cÔä‹5€DØ€FØò  ˆÚ�D Ò$Ø�H‰H�TŒNØ�M‰M˜$Õð ð
 €Mr   c                 ó*  — t        | xs d«      j                  «       }|sg S t        |«      }|rd|› �d|› d�|g}nt        |«      rt	        |«      }n|g}t        «       }g }|D ],  }|sŒ||vsŒ|j                  |«       |j                  |«       Œ. |S )Nr   z/https://drive.google.com/uc?export=download&id=z&https://drive.google.com/thumbnail?id=z	&sz=w2000)r   r   r   r!   rE   r9   r:   r3   )r
   r   Úfile_idr<   rB   rC   rD   s          r   Ú_build_candidate_urlsrH   Y   s«   € Ü
ˆcŠi�R‹.×
Ñ
Ó
 €CÙØˆ	ä+¨CÓ0€Gáà=¸g¸YÐGØ4°W°I¸YÐGØð
‰
ô
 
˜Ô	Ü2°3Ó7‰
à�Uˆ
ä‹5€DØ€FØò  ˆÚ�D Ò$Ø�H‰H�TŒNØ�M‰M˜$Õð ð
 €Mr   r.   c                 ó¼   — t        | xs d«      j                  «       }|sy|j                  d«      xs* |j                  d«      xs |j                  d«      xs d|v S )Nr   Fú/design/z/pod-api/design/údesign/)r   r   Ú
startswith)r.   r   s     r   Úis_local_design_valuerM   u   sd   € Ü
ˆeŠk�rÓ
×
 Ñ
 Ó
"€CÙØð 	�‰�zÓ"ò 	%Ø�>‰>Ð,Ó-ò	%à�>‰>˜)Ó$ò	%ð  Ð$ð	r   Ú
design_urlÚfilename_prefixc                 óø  ‡— t        | xs d«      j                  «       }|sdddddœS t        |«      r3|j                  d«      rd|› �}|j                  d«      rd	|› �}d
|dddœS dddœ}dŠt	        |«      D �]"  }	 t        j                  dd
|¬«      5 }|j                  |«      }d d d «       j                  dk\  rd|j                  › d�ŠŒW|j                  }|sdŠŒht        j                  t        |«      «      }|j                  «        |j                  dvr|j                  d«      }|› dt!        j"                  «       j$                  d d › d�}	t&        j(                  j+                  t,        |	«      }
|j/                  |
d¬«       d
t0        › d|	› �dddœc S  t7        ˆfd„dD «       «      rd nd!}dd|‰dœS # 1 sw Y   �ŒxY w# t2        $ r dŠY �Œ`t4        $ r}dt        |«      › �ŠY d }~�Œ|d }~ww xY w)"Nr   FÚDESIGN_MISSINGu(   Thiáº¿u áº£nh thiáº¿t káº¿ (Design URL).)ÚsuccessÚ	publicUrlÚreasonÚmessagerK   ú/rJ   z/pod-apiTzMozilla/5.0zimage/*,*/*;q=0.8)z
User-AgentÚAcceptu,   KhÃ´ng táº£i Ä‘Æ°á»£c áº£nh tá»« Design URL.g      4@)ÚtimeoutÚfollow_redirectsÚheadersi�  u2   KhÃ´ng táº£i Ä‘Æ°á»£c áº£nh tá»« Design URL (HTTP z).u/   Design URL khÃ´ng tráº£ vá»� dá»¯ liá»‡u áº£nh.)ÚRGBÚRGBAr\   Ú_é   z.pngÚPNG)Úformatui   Design URL khÃ´ng pháº£i áº£nh cÃ´ng khai hoáº·c link chia sáº» chÆ°a cho phÃ©p truy cáº­p trá»±c tiáº¿p.u-   KhÃ´ng táº£i Ä‘Æ°á»£c áº£nh tá»« Design URL: c              3   óB   •K  — | ]  }|‰j                  «       v –— Œ y ­w)N)r   )r+   ÚkeywordÚlast_messages     €r   r/   z&ensure_design_local.<locals>.<genexpr>Ð   s   øè ø€ Ò|°7ˆw˜,×,Ñ,Ó.Ô.Ñ|ùs   ƒ)Úpublicu   trá»±c tiáº¿pu   khÃ´ng pháº£i áº£nh cÃ´ng khaiÚDESIGN_NOT_PUBLICÚDESIGN_DOWNLOAD_FAILED)r   r   rM   rL   rH   ÚhttpxÚClientÚgetÚstatus_codeÚcontentr   Úopenr   ÚloadÚmodeÚconvertÚuuidÚuuid4ÚhexÚosÚpathr4   Ú
DESIGN_DIRÚsaveÚDESIGN_PUBLIC_PREFIXr   Ú	ExceptionÚany)rN   rO   r   rZ   Úcandidate_urlÚclientÚresponserk   ÚimageÚ	file_nameÚ	save_pathÚerT   rc   s                @r   Úensure_design_localr�   ‚   sJ  ø€ Ü
ˆjÒ˜BÓ
×
%Ñ
%Ó
'€CáàØØ&ØAñ	
ð 	
ô ˜SÔ!Ø�>‰>˜)Ô$Ø�c�U�)ˆCà�>‰>˜*Ô%Ø˜S˜EÐ"ˆCð ØØØñ	
ð 	
ð $Ø%ñ€Gð
 B€Lä.¨sÓ3ó *Tˆð)	TÜ—‘ØØ!%Øôð 5ð Ø!Ÿ:™: mÓ4�÷5ð ×#Ñ# sÒ*Ø!SÐT\×ThÑThÐSiÐikÐl�Øà×&Ñ&ˆGÙØP�Øä—J‘Jœw wÓ/Ó0ˆEØ�J‰JŒLð �z‰z Ñ0ØŸ™ fÓ-�à*Ð+¨1¬T¯Z©Z«\×-=Ñ-=¸c¸rÐ-BÐ,CÀ4ÐHˆIÜŸ™Ÿ™¤Z°Ó;ˆIà�J‰J�y¨ˆJÔ/ð  Ü 4Ð5°Q°y°kÐBØØñ	ò ð=*Tô\ Ó|Ð>{Ô|Ô|ñ 	à%ð ð ØØØñ	ð ÷a5ñ 5ûôF &ò 	à{ó ô ò 	TØJÌ3ÈqË6È(ÐSŽLûð	TúsC   Á=G
ÂF=Â''G
ÃG
Ã B:G
Æ=G	ÇG
Ç
G9ÇG9Ç G4Ç4G9)r   )rs   r   rp   Úior   Úurllib.parser   r   rg   ÚPILr   r   rt   ÚdirnameÚabspathÚ__file__ÚBASE_DIRr4   ru   rw   Úmakedirsr   r   Úboolr!   ÚlistrE   rH   rM   r8   r�   r)   r   r   ú<module>rŒ      sù   ðã 	Û 	Û Ý ß +ã ß -à�7‰7�?‰?˜2Ÿ7™7Ÿ?™?¨2¯7©7¯?©?¸8Ó+DÓEÓF€Ø�W‰W�\‰\˜( HÓ-€
Ø(Ð à €‡�ˆJ Õ &ð sð ¨só ð$E˜ð E ó Eð
. sð .¨t°C©yó .ð`˜sð  t¨C¡yó ð8
 ð 
¨ó 
ñW Cð W¸#ð WÈTô Wr   