§
    šŠtj,  ã                   óz   — d dl Z d dlZd dlmZ d dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ dZ G d„ d	e¦  «        ZdS )
é    N)Údatetime)ÚIteratorÚListÚOptional)ÚDocument)Úget_from_env)Ú
BaseLoaderz(joplin://x-callback-url/openNote?id={id}c            	       óª   — e Zd ZdZ	 	 	 ddee         dededdfd	„Zdee	         fd
„Z
dedefd„Zdedee         fd„Zdedefd„Zdee	         fd„ZdS )ÚJoplinLoadera¢  Load notes from `Joplin`.

    In order to use this loader, you need to have Joplin running with the
    Web Clipper enabled (look for "Web Clipper" in the app settings).

    To get the access token, you need to go to the Web Clipper options and
    under "Advanced Options" you will find the access token.

    You can find more information about the Web Clipper service here:
    https://joplinapp.org/clipper/
    Néà   Ú	localhostÚaccess_tokenÚportÚhostÚreturnc                 óˆ   — |pt          dd¦  «        }d|› d|› �}|› d|› d�| _        |› d|› d�| _        |› d	|› d�| _        d
S )a  

        Args:
            access_token: The access token to use.
            port: The port where the Web Clipper service is running. Default is 41184.
            host: The host where the Web Clipper service is running.
                Default is localhost.
        r   ÚJOPLIN_ACCESS_TOKENzhttp://ú:z/notes?token=zE&fields=id,parent_id,title,body,created_time,updated_time&page={page}z/folders/{id}?token=z&fields=titlez/notes/{id}/tags?token=N)r   Ú_get_note_urlÚ_get_folder_urlÚ_get_tag_url)Úselfr   r   r   Úbase_urls        úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/joplin.pyÚ__init__zJoplinLoader.__init__   s¤   € ð $ð 
¥|ØÐ1ñ(
ô (
ˆð +˜TÐ*Ð* DÐ*Ð*ˆàð Wð W lð Wð Wð Wð 	Ôð
 ÐJÐJ¨|ÐJÐJÐJð 	Ôð ÐMÐM°,ÐMÐMÐMð 	ÔÐÐó    c              #   óö  K  — d}d}|�rot           j                             | j                             |¬¦  «        ¦  «        }t           j                             |¦  «        5 }t          j        |                     ¦   «          	                    ¦   «         ¦  «        }|d         D ]­}t                               |d         ¬¦  «        |                      |d         ¦  «        |                      |d         ¦  «        |d         |                      |d	         ¦  «        |                      |d
         ¦  «        dœ}t          |d         |¬¦  «        V — Œ®|d         }|dz  }d d d ¦  «         n# 1 swxY w Y   |�°md S d S )NTé   )ÚpageÚitemsÚid©r!   Ú	parent_idÚtitleÚcreated_timeÚupdated_time)ÚsourceÚfolderÚtagsr$   r%   r&   Úbody)Úpage_contentÚmetadataÚhas_more)ÚurllibÚrequestÚRequestr   ÚformatÚurlopenÚjsonÚloadsÚreadÚdecodeÚLINK_NOTE_TEMPLATEÚ_get_folderÚ	_get_tagsÚ_convert_dater   )r   r-   r   Úreq_noteÚresponseÚ	json_dataÚnoter,   s           r   Ú
_get_noteszJoplinLoader._get_notes8   sµ  è è € ØˆØˆØñ 	Ý”~×-Ò-¨dÔ.@×.GÒ.GÈTÐ.GÑ.RÔ.RÑSÔSˆHÝ”×'Ò'¨Ñ1Ô1ð °XÝ œJ x§}¢}¡¤×'=Ò'=Ñ'?Ô'?Ñ@Ô@�	Ø% gÔ.ð 	Qð 	Q�Då"4×";Ò";¸tÀD¼zÐ";Ñ"JÔ"JØ"&×"2Ò"2°4¸Ô3DÑ"EÔ"EØ $§¢¨t°D¬zÑ :Ô :Ø!% g¤Ø(,×(:Ò(:¸4ÀÔ;OÑ(PÔ(PØ(,×(:Ò(:¸4ÀÔ;OÑ(PÔ(Pð ð  �Hõ #°°V´ÀxÐPÑPÔPÐPÐPÐPÐPà$ ZÔ0�Ø˜‘	�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ñ 	ð 	ð 	ð 	ð 	s   Á!C<E)Å)E-Å0E-Ú	folder_idc                 ód  — t           j                             | j                             |¬¦  «        ¦  «        }t           j                             |¦  «        5 }t          j        |                     ¦   «          	                    ¦   «         ¦  «        }|d         cd d d ¦  «         S # 1 swxY w Y   d S )Nr"   r$   )
r.   r/   r0   r   r1   r2   r3   r4   r5   r6   )r   r@   Ú
req_folderr<   r=   s        r   r8   zJoplinLoader._get_folderM   sÍ   € Ý”^×+Ò+¨DÔ,@×,GÒ,GÈ9Ð,GÑ,UÔ,UÑVÔVˆ
ÝŒ^×#Ò# JÑ/Ô/ð 	&°8Ýœ
 8§=¢=¡?¤?×#9Ò#9Ñ#;Ô#;Ñ<Ô<ˆIØ˜WÔ%ð	&ð 	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ÁA B%Â%B)Â,B)Únote_idc                 óx  — t           j                             | j                             |¬¦  «        ¦  «        }t           j                             |¦  «        5 }t          j        |                     ¦   «          	                    ¦   «         ¦  «        }d„ |d         D ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )Nr"   c                 ó   — g | ]
}|d          ‘ŒS )r$   © )Ú.0Útags     r   ú
<listcomp>z*JoplinLoader._get_tags.<locals>.<listcomp>W   s   € Ð?Ð?Ð? S�C˜”LÐ?Ð?Ð?r   r    )
r.   r/   r0   r   r1   r2   r3   r4   r5   r6   )r   rC   Úreq_tagr<   r=   s        r   r9   zJoplinLoader._get_tagsS   sî   € Ý”.×(Ò(¨Ô):×)AÒ)AÀWÐ)AÑ)MÔ)MÑNÔNˆÝŒ^×#Ò# GÑ,Ô,ð 	@°Ýœ
 8§=¢=¡?¤?×#9Ò#9Ñ#;Ô#;Ñ<Ô<ˆIØ?Ð?¨I°gÔ,>Ð?Ñ?Ô?ð	@ð 	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s   ÁA
B/Â/B3Â6B3Údatec                 óV   — t          j        |dz  ¦  «                             d¦  «        S )Niè  z%Y-%m-%d %H:%M:%S)r   ÚfromtimestampÚstrftime)r   rK   s     r   r:   zJoplinLoader._convert_dateY   s&   € ÝÔ% d¨T¡kÑ2Ô2×;Ò;Ð<OÑPÔPÐPr   c              #   ó>   K  — |                       ¦   «         E d {V —† d S )N)r?   )r   s    r   Ú	lazy_loadzJoplinLoader.lazy_load\   s.   è è € Ø—?’?Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$r   )Nr   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚintr   r   r   r?   r8   r   r9   r:   rP   rF   r   r   r   r      s"  € € € € € ð
ð 
ð '+ØØð	
ð 
à˜s”mð
ð ð
ð ð	
ð
 
ð
ð 
ð 
ð 
ð:˜H XÔ.ð ð ð ð ð*& Sð &¨Sð &ð &ð &ð &ð@ ð @¨¨c¬ð @ð @ð @ð @ðQ #ð Q¨#ð Qð Qð Qð Qð%˜8 HÔ-ð %ð %ð %ð %ð %ð %r   r   )r3   r.   r   Útypingr   r   r   Úlangchain_core.documentsr   Úlangchain_core.utilsr   Ú)langchain_community.document_loaders.baser	   r7   r   rF   r   r   ú<module>r[      sÁ   ðØ €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à -Ð -Ð -Ð -Ð -Ð -Ø -Ð -Ð -Ð -Ð -Ð -à @Ð @Ð @Ð @Ð @Ð @à?Ð ðO%ð O%ð O%ð O%ð O%�:ñ O%ô O%ð O%ð O%ð O%r   