
    h                         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y)    N)DictOptionalType)CallbackManagerForToolRun)	BaseModelField)GmailBaseTool)clean_email_bodyc                   0    e Zd ZU dZ edd      Zeed<   y)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__     i/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/tools/gmail/get_message.pyr   r      s    #RJ r   r   c                   `    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y)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                 x   | j                   j                         j                         j                  dd|      }|j	                         }t        j                  |d         }t        j                  |      }|d   }|d   }d}	|j                         rm|j                         D ]Y  }
|
j                         }t        |
j                  d            }|dk(  s3d	|vs8|
j                  d
      j                  d      }	 n# n!|j                  d
      j                  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   sC    ##%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   )N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE   r   r   r   r   r      s`    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      s5      ' ' > % > By 1
m 1
r   