
    dh                         S SK r S SKrS SKJrJrJr  S SKJr  S SKJ	r	J
r
  S SKJr  S SKJr   " S S\	5      r " S	 S
\5      rg)    N)DictOptionalType)CallbackManagerForToolRun)	BaseModelField)GmailBaseTool)clean_email_bodyc                   2    \ rS rSr% Sr\" SSS9r\\S'   Sr	g)	SearchArgsSchema   zInput for GetMessageTool..z<The unique ID of the email message, retrieved from a search.)description
message_id N)
__name__
__module____qualname____firstlineno____doc__r   r   str__annotations____static_attributes__r       c/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/tools/gmail/get_message.pyr   r      s    #RJ r   r   c                   l    \ rS rSr% SrSr\\S'   Sr\\S'   \	r
\\	   \S'    SS	\S
\\   S\4S jjrSrg)GmailGetMessage   z*Tool that gets a message by ID from Gmail.get_gmail_messagenameziUse this tool to fetch an email by message ID. Returns the thread ID, snippet, body, subject, and sender.r   args_schemaNr   run_managerreturnc                    U R                   R                  5       R                  5       R                  SSUS9nUR	                  5       n[
        R                  " US   5      n[        R                  " U5      nUS   nUS   nSn	UR                  5       (       ap  UR                  5        H[  n
U
R                  5       n[        U
R                  S5      5      nUS:X  d  M5  S	U;  d  M=  U
R                  S
S9R                  S5      n	  O!   OUR                  S
S9R                  S5      n	[        U	5      nUUS   US   UUUS.$ )zRun the tool.meraw)userIdformatidSubjectFrom zContent-Dispositionz
text/plain
attachmentT)decodezutf-8threadIdsnippet)r(   r.   r/   bodysubjectsender)api_resourceusersmessagesgetexecutebase64urlsafe_b64decodeemailmessage_from_bytesis_multipartwalkget_content_typer   get_payloadr-   r
   )selfr   r!   querymessage_dataraw_message	email_msgr1   r2   message_bodypartctypecdispor0   s                 r   _runGmailGetMessage._run   sA    ##%XZSUzS: 	
 }}..|E/BC,,[9	I&6"!!##!(--/TXX&;<=L(\-G#'#3#34#3#@#G#G#PL ) %000=DDWML- $Z0#I.
 	
r   r   )N)r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   rI   r   r   r   r   r   r      se    4#D##	F   +;K&':
 <@'
'
 78'
 
	'
 '
r   r   )r8   r:   typingr   r   r   langchain_core.callbacksr   pydanticr   r   $langchain_community.tools.gmail.baser	   %langchain_community.tools.gmail.utilsr
   r   r   r   r   r   <module>rP      s5      ' ' > % > By 1
m 1
r   