
    ngl                         S SK JrJrJrJrJrJr  S SKJr  S SK	J
r
  S SKJr  S SKrS SKrS SKr\" 5       r0 rSrSr " S S	\5      rS
 r\S:X  a  \" 5         gg)    )
AckMessageChatbotMessageDingTalkStreamClient
CredentialChatbotHandlerCallbackMessage)
AgentClass)Voice)add_userNding8tye32tbh0eyfkq3@IWOl68gHywls5df00pZvL1bDCSWuA-pJIpGyAGY1UvlvFchgv53r-JnKqHuo5Vafc                   J   ^  \ rS rSrU 4S jrS\4S jr\SS j5       rSr	U =r
$ )EchoTextHandler   c                 *   > [         [        U ]  5         g N)superr   __init__)self	__class__s    D   /Users/zhangyaohui/Desktop/AI课程/xiaolang/backend/src/DingTest.pyr   EchoTextHandler.__init__   s    nd,.    callbackc                 6  #    [         R                  " UR                  5      n[        UR                  5        UR                  R
                  R                  5       nUR                  S   nUR                  S   n[        SU5        [        R                  U5      n[        U5        U R                  US   U5        [        [        R                  " 5       5      n[        US9nUS   n	UR                  U	5      I S h  vN n
[        U
5        U
(       a  [         R#                  U
5      nU(       a  [        SU 35         USS.nS	n[$        [&        S
.n[(        R*                  " XS9nUR-                  5       nUR/                  S5      nSnSUS.n[,        R0                  " U5      SUR2                  US.n[(        R*                  " UUUS9n[        SUR                   35        [6        R8                  S4$  N! [4         a  n[        SU 35         S nAN1S nAff = f7f)NsenderStaffId	robotCodeuseridoutput)uidu   上传成功: 10000)mediaIdduration0https://api.dingtalk.com/v1.0/oauth2/accessTokenappKey	appSecretjsonaccessTokenz6https://api.dingtalk.com/v1.0/robot/groupMessages/sendzapplication/json)zContent-Typezx-acs-dingtalk-access-tokenvoice)msgParammsgKeyopenConversationIdr   )headersr)   u   语音消息发送结果: u   发送语音消息失败: OK)r   	from_dictdataprinttextcontentstripr   agent	run_agent
reply_textstruuiduuid4r
   	get_voicer   upload_media	client_idclient_secretrequestspostr)   getdumpsconversation_id	Exceptionr   	STATUS_OK)r   r   incoming_messager4   r   
reobotcodemsg	unique_idr+   response_textfilemedia_id	msg_param	token_url
token_datatoken_responsetoken_resultaccess_tokensend_urlr/   	send_datasend_responsees                          r   processEchoTextHandler.process   s    )33HMMBhmm$$,,224/]];/
&!ood#c
H'78

%	)$H__]33d&33D9Hxj12#< $,$+!I !SI"+%2"J &.]]9%NN#1#6#6#8L#/#3#3M#BL  XH(:7CG %)JJy$9").>.N.N%/	!I %-MM(GR[$\M6}7I7I6JKL ##T))W 4R ! <6qc:;;<s>   C9H;G2<A H=B#G4  H4
H>HHHHc                    SnSn SnUUS.n[         R                  " XES9nUR                  5       nSU;  a  [        SUR                   35      eUS   nSU S	U 3n	[        U S
5       n
SU
0n[         R                  " XS9nS S S 5        WR                  S:X  aN  UR                  5       nUR                  S5      S:X  a  UR                  S5      $ [        SUR                   35      e[        SUR                   SUR                   35      e! , (       d  f       N= f! [         a  n[        SU 35         S nAg S nAff = f)Nr   r   r$   r%   r(   r*   u   获取access_token失败: z4https://oapi.dingtalk.com/media/upload?access_token=z&type=rbmedia)files   errcoder   rN   u   上传媒体文件失败: u   上传媒体文件HTTP错误: z, u   上传媒体文件出错: )	rA   rB   r)   rF   r4   openstatus_coderC   r3   )	file_path
media_typer?   r@   rP   rQ   rR   rS   rT   urlfr^   responseresultrX   s                  r   r>   EchoTextHandler.upload_mediaM   sW    +	Z!	JI#*J &]]9FN)..0LL0"<^=P=P<Q RSS'6L IV\]g\hiCi&! !#==: ' ##s*!::i(A-!::j11#&@$PQQ"@AUAU@VVXYaYfYfXg hii '&  	.qc23	s7   A"D (DAD =D 
DD 
D?'D::D? )r+   )__name__
__module____qualname____firstlineno__r   r   rY   staticmethodr>   __static_attributes____classcell__)r   s   @r   r   r      s)    /8*o 8*t & &r   r   c                      [        [        [        5      n [        U 5      nUR	                  [
        R                  [        5       5        UR                  5         g r   )	r   r?   r@   r   register_callback_handlerr   TOPICr   start_forever)
credentialclients     r   mainrx   x   s=    I}5J!*-F
$$^%9%9?;LM
r   __main__)dingtalk_streamr   r   r   r   r   r   
src.Agentsr	   	src.Voicer
   src.Storager   rA   r;   r)   r7   user_storager?   r@   r   rx   rk   rj   r   r   <module>r      s[    w w !      "	Pen eR zF r   