Ë
    µŒjí  ã                   ó´   — d dl Z d dlZd dlmZ d dlmZmZ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e«      Z G d
„ de«      Z G d„ de«      Zy)é    N)ÚEnum)ÚAnyÚDictÚListÚOptionalÚType)ÚCallbackManagerForToolRun)Ú	BaseModelÚField)ÚGmailBaseTool)Úclean_email_bodyc                   ó   — e Zd ZdZdZdZy)ÚResourcez"Enumerator of Resources to search.ÚthreadsÚmessagesN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚTHREADSÚMESSAGES© ó    úp/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/tools/gmail/search.pyr   r      s   „ Ù,à€GØ�Hr   r   c                   ó€   — e Zd ZU dZ edd¬«      Zeed<    eej                  d¬«      Z
eed<    ed	d
¬«      Zeed<   y)ÚSearchArgsSchemazInput for SearchGmailTool..aœ  The Gmail query. Example filters include from:sender, to:recipient, subject:subject, -filtered_term, in:folder, is:important|read|starred, after:year/mo/date, before:year/mo/date, label:label_name "exact phrase". Search newer/older than using d (day), m (month), and y (year): newer_than:2d, older_than:1y. Attachments with extension example: filename:pdf. Multiple term matching example: from:amy OR from:david.)ÚdescriptionÚqueryz*Whether to search for threads or messages.)Údefaultr   Úresourceé
   z(The maximum number of results to return.Úmax_resultsN)r   r   r   r   r   r   ÚstrÚ__annotations__r   r   r    r"   Úintr   r   r   r   r      sX   … Ù$ñ Øð5ô€Eˆ3ó ñ Ø×!Ñ!Ø@ô€Hˆhó ñ ØØ>ô€K�ô 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eeeef      deeeef      fd	„Zd
eeeef      deeeef      fd„Zej"                  ddfdedededee   deeeef      f
d„Zy)ÚGmailSearchz4Tool that searches for messages or threads in Gmail.Úsearch_gmailÚnamez’Use this tool to search for email messages or threads. The input must be a valid Gmail query. The output is a JSON list of the requested resource.r   Úargs_schemar   Úreturnc                 ó2  — g }|D ]�  }|d   }| j                   j                  «       j                  «       j                  d|¬«      j	                  «       }|d   }g |d<   |D ]!  }|d   }|d   j                  ||d   dœ«       Œ# |j                  |«       Œ‘ |S )NÚidÚme)ÚuserIdr-   r   Úsnippet)r0   r-   )Úapi_resourceÚusersr   ÚgetÚexecuteÚappend)	Úselfr   ÚresultsÚthreadÚ	thread_idÚthread_datar   Úmessager0   s	            r   Ú_parse_threadszGmailSearch._parse_threads9   s¨   € àˆÛˆFØ˜t™ˆIà×!Ñ!×'Ñ'Ó)ß‘“ß‘˜D Y�Ó/ß‘“ð	 ð # :Ñ.ˆHØ!#ˆF�:ÑÛ#�Ø! )Ñ,�Ø�zÑ"×)Ñ)°gÀWÈTÁ]Ñ*SÕTð $ð �N‰N˜6Õ"ð ð ˆr   r   c                 ó>  — g }|D �]d  }|d   }| j                   j                  «       j                  «       j                  dd|¬«      j	                  «       }t        j                  |d   «      }t        j                  |«      }|d   }|d   }	d}
|j                  «       rn|j                  «       D ]Z  }|j                  «       }t        |j                  d«      «      }|d	k(  sŒ3d
|vsŒ8	 |j                  d¬«      j                  d«      }
 n# n!|j                  d¬«      j                  d«      }
t!        |
«      }|j#                  |d   |d   |d   |||	|d   |d   |d   |d   dœ
«       �Œg |S # t        $ r$ |j                  d¬«      j                  d«      }
Y Œ’w xY w)Nr-   r.   Úraw)r/   Úformatr-   ÚSubjectÚFromÚ zContent-Dispositionz
text/plainÚ
attachmentT)Údecodezutf-8zlatin-1ÚthreadIdr0   ÚDateÚToÚCc)
r-   rE   r0   ÚbodyÚsubjectÚsenderÚfromÚdateÚtoÚcc)r1   r2   r   r3   r4   Úbase64Úurlsafe_b64decodeÚemailÚmessage_from_bytesÚis_multipartÚwalkÚget_content_typer#   Úget_payloadrD   ÚUnicodeDecodeErrorr   r5   )r6   r   r7   r;   Ú
message_idÚmessage_dataÚraw_messageÚ	email_msgrJ   rK   Úmessage_bodyÚpartÚctypeÚcdisporI   s                  r   Ú_parse_messageszGmailSearch._parse_messagesM   sº  € ØˆÜˆGØ  ™ˆJà×!Ñ!×'Ñ'Ó)ß‘“ß‘˜D¨°:�Ó>ß‘“ð	 ô !×2Ñ2°<ÀÑ3FÓGˆKä×0Ñ0°Ó=ˆIà 	Ñ*ˆGØ˜vÑ&ˆFàˆLØ×%Ñ%Ô'Ø%ŸN™NÖ,�DØ ×1Ñ1Ó3�EÜ  §¡Ð*?Ó!@ÓA�FØ Ó,°ÀVÒ1KðØ+/×+;Ñ+;À4Ð+;Ó+H×+OÑ+OÐPWÓ+X˜Lñ
 ñ -ð  )×4Ñ4¸DÐ4ÓA×HÑHÈÓQ�ä# LÓ1ˆDà�N‰Nà! $™-Ø ,¨ZÑ 8Ø+¨IÑ6Ø Ø&Ø$Ø% fÑ-Ø% fÑ-Ø# D™/Ø# D™/ñöðE  ð` ˆøô1  2ò Ø+/×+;Ñ+;À4Ð+;Ó+H×+OÑ+OØ )ó,šLðús   Ã(!E/Å/*FÆFr!   Nr   r    r"   Úrun_managerc                 ót  — | j                   j                  «       j                  «       j                  d||¬«      j	                  «       j                  |j                  g «      }|t        j                  k(  r| j                  |«      S |t        j                  k(  r| j                  |«      S t        d|› d�«      ‚)zRun the tool.r.   )r/   ÚqÚ
maxResultszResource of type z not implemented.)r1   r2   r   Úlistr4   r3   Úvaluer   r   r<   r   ra   ÚNotImplementedError)r6   r   r    r"   rb   r7   s         r   Ú_runzGmailSearch._run�   sŸ   € ð ×Ñ×#Ñ#Ó%ß‰X‹Zß‰T˜ °;ˆTÓ?ß‰W‹Yß‰S�—‘ Ó$ð 	ð ”x×'Ñ'Ò'Ø×&Ñ& wÓ/Ð/Øœ×*Ñ*Ò*Ø×'Ñ'¨Ó0Ð0ä%Ð(9¸(¸ÐCTÐ&UÓVÐVr   )r   r   r   r   r)   r#   r$   r   r   r*   r   r   r   r   r<   ra   r   r   r%   r   r	   ri   r   r   r   r'   r'   .   sî   … Ù>à€Dˆ#Óð	@ð �ó ð
 +;€K�Ð&Ñ'Ó:ð d¨4°°S°©>Ñ&:ð ¸tÀDÈÈcÈÁNÑ?Só ð(2¨¨T°#°s°(©^Ñ(<ð 2ÀÀdÈ3ÐPSÈ8ÁnÑAUó 2ðn &×.Ñ.ØØ;?ñWàðWð ðWð ð	Wð
 Ð7Ñ8ðWð 
ˆd�3˜�8‰nÑ	ôWr   r'   )rP   rR   Úenumr   Útypingr   r   r   r   r   Úlangchain_core.callbacksr	   Úpydanticr
   r   Ú$langchain_community.tools.gmail.baser   Ú%langchain_community.tools.gmail.utilsr   r#   r   r   r'   r   r   r   Ú<module>rp      sJ   ðÛ Û Ý ß 2Õ 2å >ß %å >Ý Bôˆs�Dô ô�yô ô4gW�-õ gWr   