o
    Zhp!                     @   sl   d dl Z G dd deZG dd dZG dd dZG dd	 d	ZG d
d dZG dd deZdd ZdS )    Nc                   @   s   e Zd ZdZdS )TeamsWebhookExceptionz(custom exception for failed webhook callN)__name__
__module____qualname____doc__ r   r   I/var/www/html/lang_env/lib/python3.10/site-packages/pymsteams/__init__.pyr      s    r   c                   @   sv   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdddZ	dd Z
dd Zdd Zdd Zdd Zdd ZdS )cardsectionc                 C      || j d< | S Ntitlepayload)selfZstitler   r   r   r         
zcardsection.titlec                 C   r
   )NactivityTitler   )r   ZsactivityTitler   r   r   r      r   zcardsection.activityTitlec                 C   r
   )NactivitySubtitler   )r   ZsactivitySubtitler   r   r   r      r   zcardsection.activitySubtitlec                 C   r
   )NactivityImager   )r   ZsactivityImager   r   r   r      s   
zcardsection.activityImagec                 C   r
   )NactivityTextr   )r   ZsactivityTextr   r   r   r   $   r   zcardsection.activityTextc                 C   s6   d| j  vrg | j d< ||d}| j d | | S )NZfacts)namevaluer   keysappend)r   ZfactnameZ	factvalueZnewfactr   r   r   addFact)   s   
zcardsection.addFactNc                 C   sD   d| j  vrg | j d< i }||d< |r||d< | j d | | S )NZimagesimager   r   )r   ZsimageZititleZimobjr   r   r   addImage4   s   
zcardsection.addImagec                 C   r
   Ntextr   )r   Zstextr   r   r   r   >      
zcardsection.textc                 C   s   dd||gdg| j d< | S )Nhttp://schema.org
ViewActionz@context@typer   targetpotentialActionr   )r   
buttontext	buttonurlr   r   r   
linkButtonB   s   
zcardsection.linkButtonc                 C      d| j d< | S )NFmarkdownr   r   r   r   r   disableMarkdownM   r   zcardsection.disableMarkdownc                 C   r)   )NTr*   r   r+   r   r   r   enableMarkdownQ   r   zcardsection.enableMarkdownc                 C      | j S Nr   r+   r   r   r   dumpSectionU      zcardsection.dumpSectionc                 C   s
   i | _ d S r/   r   r+   r   r   r   __init__X      
zcardsection.__init__r/   )r   r   r   r   r   r   r   r   r   r   r   r(   r,   r-   r0   r2   r   r   r   r   r	      s    

r	   c                   @   s:   e Zd ZdddZdddZdd Zdd	 ZdddZdS )potentialactionNc                 C   sh   d| j  vrg | j d< | j g kr||||d}n||t| | j |d}| j d | | S )NZinputs)r#   idisMultiliner   )r#   r5   r6   choicesr   )r   r   r7   dumpChoicesstrlowerr   )r   _typeZ_idr   r6   inputr   r   r   addInput^   s    

zpotentialaction.addInputc                 C   sD   d| j  vrg | j d< |||d}|r||d< | j d | | S )Nactions)r#   r   r$   bodyr   )r   r;   _name_target_bodyactionr   r   r   	addActiont   s   
zpotentialaction.addActionc                 C   s4   d| j d< || j d< t|tstd|| j d< | S )a  
        Creates a OpenURI action

        https://docs.microsoft.com/en-us/outlook/actionable-messages/message-card-reference#openuri-action

        :param _name: *Name of the text to appear inside the ActionCard*
        :type _name: str
        :param _targets: *A list of dictionaries, ex: `{"os": "default", "uri": "https://www..."}`*
        :type _targets: list(dict())
        ZOpenUrir#   r   z#Target must be of type list(dict())targets)r   
isinstancelist	TypeError)r   r@   Z_targetsr   r   r   
addOpenURI   s   



zpotentialaction.addOpenURIc                 C   r.   r/   r   r+   r   r   r   dumpPotentialAction   r1   z#potentialaction.dumpPotentialAction
ActionCardc                 C   s&   i | _ || j d< || j d< t | _d S )Nr#   r   )r   choicer7   )r   r@   r;   r   r   r   r2      s   

zpotentialaction.__init__r/   )rK   )r   r   r   r=   rD   rI   rJ   r2   r   r   r   r   r4   \   s    

r4   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )rL   c                 C   s
   g | _ d S r/   r7   r+   r   r   r   r2      r3   zchoice.__init__c                 C   s   | j ||d d S )N)displayr   )r7   r   )r   _display_valuer   r   r   
addChoices   s   zchoice.addChoicesc                 C   r.   r/   rM   r+   r   r   r   r8      r1   zchoice.dumpChoicesN)r   r   r   r2   rQ   r8   r   r   r   r   rL      s    rL   c                   @   sf   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdddZdS )connectorcardc                 C   r
   r   r   )r   Zmtextr   r   r   r      r   zconnectorcard.textc                 C   r
   r   r   )r   Zmtitler   r   r   r      r   zconnectorcard.titlec                 C   r
   )Nsummaryr   )r   Zmsummaryr   r   r   rS      r   zconnectorcard.summaryc                 C   s(   |  dkrd| jd< | S || jd< | S )NredZE81123Z
themeColor)r:   r   )r   Zmcolorr   r   r   color   s
   

zconnectorcard.colorc                 C   s8   d| j vr
g | j d< dd||gd}| j d | | S )Nr%   r    r!   r"   )r   r   )r   r&   r'   Z
thisbuttonr   r   r   addLinkButton   s   

zconnectorcard.addLinkButtonc                 C   s
   || _ | S r/   )hookurl)r   Znhookurlr   r   r   
newhookurl   s   zconnectorcard.newhookurlc                 C   0   d| j  vrg | j d< | j d |  | S )Nsections)r   r   r   r0   )r   Z
newsectionr   r   r   
addSection      
zconnectorcard.addSectionc                 C   rY   )Nr%   )r   r   r   rJ   )r   Z	newactionr   r   r   addPotentialAction   r\   z connectorcard.addPotentialActionc                 C   s    t d| j  t d| j  d S )Nzhookurl: %szpayload: %s)printrW   r   r+   r   r   r   printme   s   zconnectorcard.printmec                 C   sJ   ddi}t j| j| j|| j| j| jd}|| _|jt j	j
kr dS t|j)NContent-Typeapplication/json)jsonheadersproxiestimeoutverifyT)requestspostrW   r   rd   http_timeoutrf   last_http_responsestatus_codecodesokr   r   )r   rc   rr   r   r   send   s   
zconnectorcard.sendN<   c                 C   sT   i | _ || _i | _|| _|| _d | _|r|| jd< |r || jd< | js(d | _d S d S )Nhttphttps)r   rW   rd   ri   rf   rj   )r   rW   Z
http_proxyZhttps_proxyri   rf   r   r   r   r2      s   


zconnectorcard.__init__)NNrp   N)r   r   r   r   r   rS   rU   rV   rX   r[   r]   r_   ro   r2   r   r   r   r   rR      s    rR   c                   @   s   e Zd Zdd ZdS )async_connectorcardc              
      s   zdd l }W n ty } ztd |d }~ww ddi}|j| j| jd4 I d H 0}|j| j| j|| j	dI d H }|| _
|j|jjkrV|jdkrV	 W d   I d H  dS t|j1 I d H saw   Y  d S )	Nr   z~For use the asynchronous connector card, install the asynchronous version of the library via pip: pip install pymsteams[async]r`   ra   )rd   rf   )rb   rc   re   1T)httpxImportErrorr^   ZAsyncClientrd   rf   rh   rW   r   ri   rj   rk   rl   OKr   r   )r   ru   erc   clientrespr   r   r   ro     s*   
	zasync_connectorcard.sendN)r   r   r   ro   r   r   r   r   rs   
  s    rs   c                 C   s   d| |f }|S )Nz[%s](%s)r   )rN   urlZmdurlr   r   r   	formaturl"  s   r|   )	rg   	Exceptionr   r	   r4   rL   rR   rs   r|   r   r   r   r   <module>   s   OB^