
    E0j
                         d dl mZ d dl mZ d dl mZ d dl mZ d dl mZ d dlmZ ddlm	Z	 e	rd d	l
mZ  G d
 de          Z G d de          Z G d de          ZdS )   )Headers)
AckMessage)SystemMessage)EventMessage)CallbackMessage)setup_default_logger    )TYPE_CHECKING)DingTalkStreamClientc                   6    e Zd ZdZd Zd ZdefdZdefdZdS )	CallbackHandlerz/v1.0/card/instances/callbackc                 <    d | _         t          d          | _        d S Nzdingtalk_stream.handlerdingtalk_clientr   loggerselfs    `/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/dingtalk_stream/handlers.py__init__zCallbackHandler.__init__       7;*+DEE    c                     d S N r   s    r   	pre_startzCallbackHandler.pre_start       r   messagec                 "   K   t           j        dfS Nznot implementr   STATUS_NOT_IMPLEMENTr   r   s     r   processzCallbackHandler.process         .??r   callback_messagec                    K   |                      |           d {V \  }}t                      }||_        |j        j        |j        _        t
          j        |j        _        d|i|_        |S )Nresponse)	r$   r   codeheaders
message_idr   CONTENT_TYPE_APPLICATION_JSONcontent_typedata)r   r&   r)   r   ack_messages        r   raw_processzCallbackHandler.raw_process   sq      "ll+;<<<<<<<<g ll)9)A)L&+2+P(&0r   N)	__name__
__module____qualname__TOPIC_CARD_CALLBACKr   r   r   r$   r0   r   r   r   r   r      sv        9F F F  @_ @ @ @ @/      r   r   c                   2    e Zd Zd Zd ZdefdZdefdZdS )EventHandlerc                 <    d | _         t          d          | _        d S r   r   r   s    r   r   zEventHandler.__init__%   r   r   c                     d S r   r   r   s    r   r   zEventHandler.pre_start)   r   r   eventc                 "   K   t           j        dfS r    r!   )r   r9   s     r   r$   zEventHandler.process,   r%   r   event_messagec                    K   |                      |           d {V \  }}t                      }||_        |j        j        |j        _        t
          j        |j        _        ||_        |j	        |_	        |S r   
r$   r   r)   r*   r+   r   r,   r-   r   r.   )r   r;   r)   r   r/   s        r   r0   zEventHandler.raw_process/   sv      "ll=99999999g ll)6)>)I&+2+P(%(-r   N)r1   r2   r3   r   r   r   r$   r0   r   r   r   r6   r6   $   sp        F F F  @< @ @ @ @|      r   r6   c                   2    e Zd Zd Zd ZdefdZdefdZdS )SystemHandlerc                 <    d | _         t          d          | _        d S r   r   r   s    r   r   zSystemHandler.__init__;   r   r   c                     d S r   r   r   s    r   r   zSystemHandler.pre_start?   r   r   r   c                 "   K   t           j        dfS )NOK)r   	STATUS_OKr#   s     r   r$   zSystemHandler.processB   s      #T))r   system_messagec                    K   |                      |           d {V \  }}t                      }||_        |j        j        |j        _        t
          j        |j        _        ||_        |j	        |_	        |S r   r=   )r   rE   r)   r   r/   s        r   r0   zSystemHandler.raw_processE   sv      "ll>::::::::g ll)7)?)J&+2+P(%).r   N)r1   r2   r3   r   r   r   r$   r0   r   r   r   r?   r?   :   sk        F F F  *] * * * *      r   r?   N)framesr   r   r   r   r   logr   typingr
   streamr   objectr   r6   r?   r   r   r   <module>rL      s%               ! ! ! ! ! !             # # # # # # % % % % % %             -,,,,,,    f   .    6   ,    F     r   