
    [iB              
       4   d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
  ed      Zej                  d       ed       ed       ed       ed      fd	ed
ededefd       Zej                  d       ed       ed       ed      fded	ed
edefd       Zy)u"   Webhook路由 - 企业微信回调    )	APIRouterRequestResponseQuery)PlainTextResponse)WeChatWorkClientWeChatWorkMessageHandlerz	/webhooks)prefixz/wechat-work.msg_signature	timestampnonceechostrc                 v   K   t               }|j                  | |||      rt        |      S t        dd      S w)u0   企业微信URL验证（配置回调时调用）zverify failedi  )status_code)r   
verify_urlr   )r   r   r   r   clients        </home/jang/Projects/ai-researcher/src/api/routes/webhooks.pywechat_work_verifyr   
   s<      F	5'B ))_#>>s   79requestc                 N  K   | j                          d{   }|j                  d      }t               }t        |      }|j	                  |      }|j                  |       d{   }	|	r'|j                  |d   |d   |	      }
t        |
d      S t        dd	      S 7 7 <w)
u   企业微信消息回调Nzutf-8from_user_nameto_user_name)to_user	from_usercontentzapplication/xml)r   
media_typesuccessz
text/plain)bodydecoder   r	   parse_messagehandle_messagebuild_replyr   )r   r   r   r   r   xml_datar   handlermessagereply_content	reply_xmls              r   wechat_work_callbackr(      s      D{{7#HF&v.G ""8,G "0099M&&,-n-! ' 
	
 	6GHHI,??+   :s"   B%B!AB%&B#';B%#B%N)__doc__fastapir   r   r   r   fastapi.responsesr   src.integrations.wechat_workr   r	   routergetstrr   postr(        r   <module>r3      s    ( 7 7 / S	+	& Ns3Zs:	
?
?
? 
? 	
? 
? ^ s3Zs	@@@ @ 	@ @r2   