
    Ng                         d dl Z d dlZd dlmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ  G d de	          Z G d	 d
e          ZdS )    N)DictOptionalType)CallbackManagerForToolRun)	BaseModelField)GmailBaseTool)clean_email_bodyc                   8    e Zd ZU dZ edd          Zeed<   dS )SearchArgsSchemazInput for GetMessageTool..z<The unique ID of the email message, retrieved from a search.)description
message_idN)__name__
__module____qualname____doc__r   r   str__annotations__     g/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/tools/gmail/get_message.pyr   r      sI         ##eR  J     r   r   c                   n    e Zd ZU dZdZeed<   dZeed<   eZ	e
e         ed<   	 dded	ee         d
efdZdS )GmailGetMessagez*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                    | j                                                                                             dd|          }|                                }t          j        |d                   }t          j        |          }|d         }|d         }d}	|	                                r|
                                D ]m}
|
                                }t          |
                    d                    }|dk    r/d	|vr+|
                    d
                              d          }	 nnn)|                    d
                              d          }	t          |	          }||d         |d         |||d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_msgr-   r.   message_bodypartctypecdispor,   s                 r   _runzGmailGetMessage._run   s{    ##%%XZZSUzS:: 	
 }}.|E/BCC,[99	I&6"!!## 	N!((  --//TXX&;<<==L((\-G-G#'#3#34#3#@#@#G#G#P#PLE$000==DDWMML-- $Z0#I.
 
 	
r   )N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE   r   r   r   r   r      s         44#D####	F     +;K&':::
 <@'
 '
'
 78'
 
	'
 '
 '
 '
 '
 '
r   r   )r4   r6   typingr   r   r   langchain_core.callbacksr   pydanticr   r   $langchain_community.tools.gmail.baser	   %langchain_community.tools.gmail.utilsr
   r   r   r   r   r   <module>rK      s      ' ' ' ' ' ' ' ' ' ' > > > > > > % % % % % % % % > > > > > > B B B B B B    y   1
 1
 1
 1
 1
m 1
 1
 1
 1
 1
r   