§
    šŠtj  ã                   óJ   — d dl mZmZ d dlmZ d dlmZ  G d„ de¦  «        ZdS )é    )ÚAnyÚList)ÚDocument)ÚWebBaseLoaderc                   ób   — e Zd ZdZdee         fd„Zdedee         fd„Zdedee         fd„Z	dS )	ÚHNLoaderz_Load `Hacker News` data.

    It loads data from either main page results or the comments page.Úreturnc                 ó�   — |                       ¦   «         }d| j        v r|                      |¦  «        S |                      |¦  «        S )a  Get important HN webpage information.

        HN webpage components are:
            - title
            - content
            - source url,
            - time of post
            - author of the post
            - number of comments
            - rank of the post
        Úitem)ÚscrapeÚweb_pathÚload_commentsÚload_results)ÚselfÚ	soup_infos     úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/hn.pyÚloadzHNLoader.load   sF   € ð —K’K‘M”Mˆ	Ø�T”]Ð"Ð"Ø×%Ò% iÑ0Ô0Ð0à×$Ò$ YÑ/Ô/Ð/ó    r   c                 óž   ‡ ‡— |                      d¦  «        }|                     d¦  «                             d¦  «        Šˆ ˆfd„|D ¦   «         S )zLoad comments from a HN post.ztr[class='athing comtr']ztr[id='pagespace']Útitlec                 óp   •— g | ]2}t          |j                             ¦   «         ‰j        ‰d œ¬¦  «        ‘Œ3S ))Úsourcer   )Úpage_contentÚmetadata)r   ÚtextÚstripr   )Ú.0Úcommentr   r   s     €€r   ú
<listcomp>z*HNLoader.load_comments.<locals>.<listcomp>#   sX   ø€ ð 
ð 
ð 
ð
 õ	 Ø$œ\×/Ò/Ñ1Ô1Ø$(¤M¸EÐBÐBðñ ô ð
ð 
ð 
r   )ÚselectÚ
select_oneÚget)r   r   Úcommentsr   s   `  @r   r   zHNLoader.load_comments   sl   øø€ à×#Ò#Ð$>Ñ?Ô?ˆØ×$Ò$Ð%9Ñ:Ô:×>Ò>¸wÑGÔGˆð
ð 
ð 
ð 
ð 
ð
 $ð
ñ 
ô 
ð 	
r   Úsoupc           	      ó°  — |                      d¦  «        }g }|D ]»}|                     d¦  «        j        }|                     dddi¦  «                             d¦  «                             d¦  «        }|                     dddi¦  «        j                             ¦   «         }| j        |||dœ}|                     t          ||||¬	¦  «        ¦  «         Œ¼|S )
zLoad items from an HN page.ztr[class='athing']zspan[class='rank']ÚspanÚclassÚ	titlelineÚaÚhref)r   r   ÚlinkÚranking)r   r+   r,   r   )	r    r!   r   Úfindr"   r   r   Úappendr   )	r   r$   ÚitemsÚ	documentsÚlineItemr,   r+   r   r   s	            r   r   zHNLoader.load_results+   sö   € à—’Ð0Ñ1Ô1ˆØˆ	Øð 	ð 	ˆHØ×)Ò)Ð*>Ñ?Ô?ÔDˆGØ—=’= ¨'°;Ð)?Ñ@Ô@×EÒEÀcÑJÔJ×NÒNÈvÑVÔVˆDØ—M’M &¨7°KÐ*@ÑAÔAÔF×LÒLÑNÔNˆEàœ-ØØØ"ð	ð ˆHð ×ÒÝØ!&¨T¸7ÈXðñ ô ñô ð ð ð
 Ðr   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   © r   r   r   r      s‹   € € € € € ðIð Ið0�d˜8”nð 0ð 0ð 0ð 0ð$

 sð 

¨t°H¬~ð 

ð 

ð 

ð 

ð ð ¨¨h¬ð ð ð ð ð ð r   r   N)Útypingr   r   Úlangchain_core.documentsr   Ú-langchain_community.document_loaders.web_baser   r   r6   r   r   ú<module>r:      su   ðØ Ð Ð Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -à GÐ GÐ GÐ GÐ GÐ Gð6ð 6ð 6ð 6ð 6ˆ}ñ 6ô 6ð 6ð 6ð 6r   