
    7|hn                        d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZ erd dlZd dlmZmZ d
dZ G d d	e      Zy)    )annotations)TYPE_CHECKINGAnyDictIterableListOptionalSequenceUnionDocument)
BaseLoaderN)OAuth2BearerHandlerOAuthHandlerc                 @    	 dd l } | S # t        $ r t        d      w xY w)Nr   zEtweepy package not found, please install it with `pip install tweepy`)tweepyImportError)r   s    k/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/document_loaders/twitter.py_dependable_tweepy_importr      s2    

 M	  
S
 	

s    c                      e Zd ZdZ	 d	 	 	 	 	 d	dZd
dZ	 	 	 	 	 	 ddZe	 d	 	 	 	 	 	 	 dd       Ze	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z	y)TwitterTweetLoadera  Load `Twitter` tweets.

    Read tweets of the user's Twitter handle.

    First you need to go to
    `https://developer.twitter.com/en/docs/twitter-api
    /getting-started/getting-access-to-the-twitter-api`
    to get your token. And create a v2 version of the app.
    c                .    || _         || _        || _        y )N)authtwitter_usersnumber_tweets)selfauth_handlerr   r   s       r   __init__zTwitterTweetLoader.__init__#   s     !	**    c                P   t               } |j                  | j                  |j                  j	                               }g }| j
                  D ]T  }|j                  || j                        }|j                  |      }| j                  ||      }|j                  |       V |S )zLoad tweets.)parser)screen_namecount)r"   )r   APIr   parsers
JSONParserr   user_timeliner   get_user_format_tweetsextend)r   r   apiresultsusernametweetsuserdocss           r   loadzTwitterTweetLoader.load-   s    *,fjj6>>+D+D+FG"$** 	!H&&84CUCU&VF<<H<5D&&vt4DNN4 		!
 r   c              #  N   K   |D ]  }|d   |d}t        |d   |        yw)zFormat tweets into a string.
created_at)r3   	user_infotext)page_contentmetadataNr   )r   r.   r4   tweetr7   s        r   r)   z!TwitterTweetLoader._format_tweets:   sB       	E#L1&H "6]! 	s   #%c                P    t               } |j                  |      } | |||      S )z5Create a TwitterTweetLoader from OAuth2 bearer token.r   r   r   )r   r   )clsoauth2_bearer_tokenr   r   r   r   s         r   from_bearer_tokenz$TwitterTweetLoader.from_bearer_tokenH   s5     +,)v))*=>''
 	
r   c                X    t               } |j                  ||||      } | |||      S )z;Create a TwitterTweetLoader from access tokens and secrets.)access_tokenaccess_token_secretconsumer_keyconsumer_secretr:   )r   r   )	r;   r?   r@   rA   rB   r   r   r   r   s	            r   from_secretszTwitterTweetLoader.from_secretsX   sB     +,"v""% 3%+	
 ''
 	
r   N)d   )r   z(Union[OAuthHandler, OAuth2BearerHandler]r   Sequence[str]r   Optional[int])returnzList[Document])r.   zList[Dict[str, Any]]r4   dictrG   zIterable[Document])r<   strr   rE   r   rF   rG   r   )r?   rI   r@   rI   rA   rI   rB   rI   r   rE   r   rF   rG   r   )
__name__
__module____qualname____doc__r   r1   r)   classmethodr=   rC    r   r   r   r      s     (+	+>+ %+ %	+*7;	 
 (+	
 
 %
 %	

 

 
  (+

 !
 	

 
 %
 %
 

 
r   r   )rG   r   )
__future__r   typingr   r   r   r   r   r	   r
   r   langchain_core.documentsr   )langchain_community.document_loaders.baser   r   r   r   r   r   rO   r   r   <module>rT      s3    " V V V - @8V
 V
r   