
    މjz                    X    S r SSKJr  SSKrSSKrSSKJr  S	S jrS
S jrSS jr	SS jr
g)u:   Odeslání e-mailu při novém termínu nebo změně ceny.    )annotationsN)EmailMessagec                     [        [        [        U 5      5      5      S R                  SS5      S-   $ ! [        [
        4 a     gf = f)N, u    Kč   —)introundfloatreplace	TypeError
ValueError)ns    /var/www/vacation/notify.py_fmt_kcr   
   sH    eE!Ho&q)223<vEEz" s   14 AAc                t    U (       d  gU S S R                  S5      u  pn[        U5       S[        U5       S3$ )Nr   
   -z. .)splitr	   )isoymds       r   	_fmt_dater      s;    #2hnnS!GA!!fXRAxq!!    c                   U  Vs/ s H  oS   S:X  d  M  UPM     nnU  Vs/ s H  oS   S:X  d  M  UPM     nn/ nU(       a:  UR                  [        U5      S:X  a  [        U5       S3O[        U5       S35        U(       a:  UR                  [        U5      S:X  a  [        U5       S3O[        U5       S35        S	S
R                  U5      -   nSS/nU(       a  UR                  S5        U H  nUS   US   pUR                  SU S[        US   5       S[        US   5       SUR	                  S5       S[        US   5       SUR	                  S5      =(       d    UR	                  S5       35        M     UR                  S5        U(       a  UR                  S5        U H\  nUS   US   pUR                  SU S[        US   5       S[        US   5       S[        US   5       S[        US   5       3
5        M^     UR                  S5        UR                  S5        US R                  U5      4$ s  snf s  snf )!Ntypenewprice   u    nový termínu    nové termínyu    změna cenyu    změny cenu   Fischer přehled: z, zAhoj, u3   Nové zájezdy z Pardubic (all inclusive, 2 osoby):offerhotelz- : departure_dateu    → return_datez (nightsu    nocí) · price_totalu    · roommealu   Změny cen:r   	old_priceu   Přehled zájezdů je na webu.
)appendlenjoinr   getr   )	eventsenewspricespartssubjectlinesohs	            r   build_messager;      s<   4v!6e!3AvD48AV9#7aF8ESY!^D	{.1CPTI;VeIfgS[A5EF}L1cRXk]ZeKfg"TYYu%55GbMEJKAW:qzqLLQCr)A&6$789y=IY?Z>[ \EE(O$K-8H0I/J$quuU[}Om`a`e`efl`mNnp  	R]#AW:qzqLLQCr)A&6$789y=IY?Z>[[\1[>*+5=9I1J0KM  	R	LL12DIIe$$$; 58s   H<H<IIc                |   U R                  S5      =(       d    0 nU(       d  g UR                  S5      (       d  [        S5        g UR                  S5      =(       d    SR                  5       nUR                  S5      =(       d    SR                  5       nU(       a  U(       d  [        S5        g US;   a  [        S	5        g [        U5      u  pV[	        5       nXWS
'   UR                  S5      =(       d    UR                  5       US'   X7S'   UR                  U5        [        UR                  S5      =(       d    S5      nUR                  S5      =(       d    Sn	UR                  S5      =(       d    Sn
[        UR                  S5      5      nU(       d  UR                  SS5      OSn[        R                  " 5       nU(       aI  [        R                  " XHSUS9 nU	(       a  UR                  X5        UR                  U5        S S S 5        O}[        R                  " XHSS9 nUR                  5         U(       a  UR!                  US9  UR                  5         U	(       a  UR                  X5        UR                  U5        S S S 5        [        SU SU 35        g ! , (       d  f       N = f! , (       d  f       N1= f)Nemailenabledz%E-mail: vypnuto (email.enabled=false)tor"   	smtp_hostu:   E-mail: chybí email.to nebo email.smtp_host v config.json>   example.comsmtp.example.comuF   E-mail: v config.json doplň skutečný smtp_host, to a přihlášeníSubjectfromFromTo	smtp_portiK  	smtp_usersmtp_passwordsmtp_sslsmtp_tlsTF   )timeoutcontext)rM   )rN   u   E-mail odeslán na r%   )r1   printstripr;   r   set_contentr	   boolsslcreate_default_contextsmtplibSMTP_SSLloginsend_messageSMTPehlostarttls)cfgr2   emto_addrhostr7   bodymsgportuserpassworduse_ssluse_tlsrN   smtps                  r   send_eventsrh   9   s   			RB66)56vvd|!r((*GFF;%2,,.D$JK22VW!&)MG
.C	N66&>,W335CKIOODrvvk")c*D66+$"Dvvo&,"H266*%&G.5bffZ&5G((*Gd"gF$

4*c" GF
 \\$b1TIIKg.		

4*c" 2 
y7)
45 GF
 21s   *J"A J-
J*-
J;)returnstr)r   z
str | Noneri   rj   )r2   
list[dict]ri   ztuple[str, str])r\   dictr2   rk   ri   None)__doc__
__future__r   rU   rS   email.messager   r   r   r;   rh    r   r   <module>rr      s)    @ "  
 &"%B,6r   