
    Ng                     v    d dl Z d dl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)AnyIterator)Document)
BaseLoaderc                   N    e Zd ZdZdededefdZdedefdZdee	         fd	Z
d
S )LarkSuiteDocLoaderz!Load from `LarkSuite` (`FeiShu`).domainaccess_tokendocument_idc                 0    || _         || _        || _        dS )zInitialize with domain, access_token (tenant / user), and document_id.

        Args:
            domain: The domain to load the LarkSuite.
            access_token: The access_token to use.
            document_id: The document_id to load.
        N)r	   r
   r   )selfr	   r
   r   s       j/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/document_loaders/larksuite.py__init__zLarkSuiteDocLoader.__init__   s!     (&    api_urlreturnc                 B   dd| j          i}t          j                            ||          }t          j                            |          5 }t          j        |                                                                          }|cddd           S # 1 swxY w Y   dS )z.Get LarkSuite (FeiShu) API response json data.AuthorizationzBearer )headersN)	r
   urllibrequestRequesturlopenjsonloadsreaddecode)r   r   r   r   response	json_datas         r   _get_larksuite_api_json_dataz/LarkSuiteDocLoader._get_larksuite_api_json_data   s    "$Ad.?$A$AB.(('(BB^##G,, 	
8==??#9#9#;#;<<I	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :BBBc              #   <  K   | j          d}|                     | d| j                   }|                     | d| j         d          }|d         d         }| j        |d         d         d         |d         d         d         d	}t          ||
          V  dS )z&Lazy load LarkSuite (FeiShu) document.z/open-apis/docx/v1/documents/z/raw_contentdatacontentdocumentrevision_idtitle)r   r&   r'   )page_contentmetadataN)r	   r    r   r   )r   api_url_prefixmetadata_jsonraw_content_jsontextr)   s         r   	lazy_loadzLarkSuiteDocLoader.lazy_load!   s       KEEE9922 022
 
  <<>> 0>>>
 
  '	2+(0<]K"6*:6w?
 

 D8<<<<<<<<r   N)__name__
__module____qualname____doc__strr   r   r    r   r   r.    r   r   r   r   
   s        ++
's 
'# 
'C 
' 
' 
' 
'C C    =8H- = = = = = =r   r   c                   H     e Zd ZdZdededefdZdee         f fdZ xZ	S )LarkSuiteWikiLoaderz&Load from `LarkSuite` (`FeiShu`) wiki.r	   r
   wiki_idc                 >    || _         || _        || _        d| _        dS )zInitialize with domain, access_token (tenant / user), and wiki_id.

        Args:
            domain: The domain to load the LarkSuite.
            access_token: The access_token to use.
            wiki_id: The wiki_id to load.
         N)r	   r
   r7   r   )r   r	   r
   r7   s       r   r   zLarkSuiteWikiLoader.__init__6   s(     (r   r   c              #      K   | j         sB| j         d}|                     | d| j                   }|d         d         d         | _         t	                                                      E d{V  dS )z+Lazy load LarkSuite (FeiShu) wiki document.z"/open-apis/wiki/v2/spaces/get_nodez?token=r#   node	obj_tokenN)r   r	   r    r7   superr.   )r   wiki_url_prefixwiki_node_info_json	__class__s      r   r.   zLarkSuiteWikiLoader.lazy_loadC   s        	P!%PPPO"&"C"C"994<99# #  36:6B;OD77$$&&&&&&&&&&&r   )
r/   r0   r1   r2   r3   r   r   r   r.   __classcell__)r@   s   @r   r6   r6   3   sx        00s #     '8H- ' ' ' ' ' ' ' ' ' 'r   r6   )r   urllib.requestr   typingr   r   langchain_core.documentsr   )langchain_community.document_loaders.baser   r   r6   r4   r   r   <module>rF      s                         - - - - - - @ @ @ @ @ @&= &= &= &= &= &= &= &=R' ' ' ' ', ' ' ' ' 'r   