ó
ÌÿŠac           @  sj   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d d
 d „  ƒ  YZ d d d „  ƒ  YZ	 d	 S(   iÿÿÿÿ(   t   print_function(   t   popen(   t   MIMEText(   t   SMTPt   Emailc           B  s,   e  Z d  Z d d d d d „ Z d „  Z RS(   s0   
    This class encapsulates sending email.
    iK  c         C  sL   | d k r t d ƒ ‚ n  | |  _ | |  _ | |  _ | |  _ t |  _ d S(   sG   
        Save the information needed to contact an smtp server
        s#   Must supply smpt server informationN(   t   Nonet
   ValueErrort   smtp_servert	   smtp_usert   smtp_passwordt	   smtp_portt   Falset   verbose(   t   selfR   R   R	   R
   (    (    s-   /srv/kernel/kteam-tools/libs/ktl/messaging.pyt   __init__   s    					c         C  sÿ   |  j  r& t d | | | | f ƒ n  t | ƒ } | | d <| | d <| | d <| j d ƒ } t |  j |  j ƒ } |  j  r | j d ƒ n  | j ƒ  | j	 ƒ  |  j
 d k	 rØ |  j d k	 rØ | j |  j
 |  j ƒ n  | j | | | j ƒ  ƒ | j ƒ  d S(   sL   
        Send email. Uses the smtp server info already initialized.
        s7   send_email: from=<%s>, to=<%s>, subject=<%s>, body=<%s>t   Subjectt   Fromt   Tot   ,i   N(   R   t   printR   t   splitR   R   R
   t   set_debuglevelt   ehlot   starttlsR   R   R	   t   logint   sendmailt	   as_stringt   quit(   R   t   from_addresst
   to_addresst   subjectt   bodyt   msgt   to_listt   s(    (    s-   /srv/kernel/kteam-tools/libs/ktl/messaging.pyt   send&   s"    	


	


N(   t   __name__t
   __module__t   __doc__R   R   R#   (    (    (    s-   /srv/kernel/kteam-tools/libs/ktl/messaging.pyR      s   t   Statusc           B  s)   e  Z d  Z d d d d „ Z d „  Z RS(   sc   
    This class encapsulates sending status updates to twitter, identi.ca, or status.net APIs.
    c         C  sR   | d k s$ | d k s$ | d k r3 t d ƒ ‚ n  | |  _ | |  _ | |  _ d S(   sC   
        Save the information needed to contact the server
        s%   Must supply status server informationN(   R   R   t
   status_urlt   status_usert   status_password(   R   R(   R)   R*   (    (    s-   /srv/kernel/kteam-tools/libs/ktl/messaging.pyR   F   s    $			c         C  s2   d |  j  |  j | |  j f } t | d ƒ } d  S(   Ns"   curl -s -u %s:%s -d status="%s" %st   r(   R)   R*   R(   R   (   R   t   messaget   curlt   pipe(    (    s-   /srv/kernel/kteam-tools/libs/ktl/messaging.pyt   updateQ   s    N(   R$   R%   R&   R   R   R/   (    (    (    s-   /srv/kernel/kteam-tools/libs/ktl/messaging.pyR'   B   s   N(    (    (
   t
   __future__R    t   osR   t   email.mime.textR   t   smtplibR   R   R'   (    (    (    s-   /srv/kernel/kteam-tools/libs/ktl/messaging.pyt   <module>   s
   0