a
    bg                     @   s|   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 de	ZG d	d
 d
eZdS )    N)DictOptionalType)CallbackManagerForToolRun)	BaseModelField)GmailBaseTool)clean_email_bodyc                   @   s&   e Zd ZU dZed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__ r   r   y/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/tools/gmail/get_message.pyr
      s
   
r
   c                   @   sR   e Zd ZU dZdZeed< dZeed< eZ	e
e ed< deee edd	d
ZdS )GmailGetMessagez*Tool that gets a message by ID from Gmail.Zget_gmail_messagenameziUse this tool to fetch an email by message ID. Returns the thread ID, snippet, body, subject, and sender.r   args_schemaN)r   run_managerreturnc                 C   s   | j   jdd|d}| }t|d }t|}|d }|d }d}	|	 r|
 D ]@}
|
 }t|
d}|dkr^d	|vr^|
jd
dd}	 qq^n|jd
dd}	t|	}||d |d |||dS )zRun the tool.meraw)ZuserIdformatidSubjectFrom zContent-Dispositionz
text/plain
attachmentT)decodezutf-8threadIdsnippet)r   r#   r$   bodysubjectsender)Zapi_resourceZusersmessagesgetexecutebase64urlsafe_b64decodeemailmessage_from_bytesis_multipartwalkget_content_typer   get_payloadr"   r	   )selfr   r   queryZmessage_dataZraw_messageZ	email_msgr&   r'   message_bodypartctypeZcdispor%   r   r   r   _run   s4    
zGmailGetMessage._run)N)r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r8   r   r   r   r   r      s   

 r   )r+   r-   typingr   r   r   Zlangchain_core.callbacksr   Zpydanticr   r   Z$langchain_community.tools.gmail.baser   Z%langchain_community.tools.gmail.utilsr	   r
   r   r   r   r   r   <module>   s   	