
    @jV3                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZdaea G d dej                  Zd ZddZd Zd	 Zej        d
             ZddZd Zd Z G d de j                  Zd Zd Zd Zd ZdS )    NFc                   :     e Zd Z fdZd Zd Zd Z fdZ xZS )Loggerc                     t                      j        |g|R i | t          r|                    di                               dd          sot	          j                    }t          |          dk    rKt          |dd          d d d                   }t                                          |d|            d S d S d S d S )Nextra_snscrapeSuppressDumpLocalsF      Dumped stack and locals to )superlog
dumpLocalsgetinspectstacklen_dump_stack_and_locals)selflevelargskwargsr   name	__class__s         T/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/snscrape/_cli.py_log_with_stackzLogger._log_with_stack   s    %''+e%d%%%f%%% =

7B//334QSXYY ==??5	%jjAoo!%)DDbD/22D	GGKK;T;;<<<<<	= = = =o    c                 <     | j         t          j        g|R i | d S N)r   loggingWARNINGr   r   r   s      r   warningzLogger.warning!   s-    $w888888888r   c                 <     | j         t          j        g|R i | d S r   )r   r   ERRORr!   s      r   errorzLogger.error$   s-    $w}6t666v66666r   c                 <     | j         t          j        g|R i | d S r   )r   r   CRITICALr!   s      r   criticalzLogger.critical'   s.    $w'9$999&99999r   c                     |t           j        k    r | j        |g|R i | d S  t                      j        |g|R i | d S r   )r   r    r   r   r   )r   r   r   r   r   s       r   r   z
Logger.log*   se    
go4/////////577;u&t&&&v&&&&&r   )	__name__
__module____qualname__r   r"   r%   r(   r   __classcell__r   s   @r   r   r      s~        = = = = =9 9 97 7 7: : :' ' ' ' ' ' ' ' 'r   r   c                    g }|                     |  d|           |                     d|  d|j                    |                     d|  d|j                    |                     d|  d           |j        D ]6}|                     d| dt	          d|j        |                               7dD ]}t          ||          rqt          ||          ra|                     d|  d	| d           |                     t	          dt          ||                                        d
d                     d                    |          S )N = 
  z
.method = .url = .headers = \
    _)bodyparamsdata.
 )	appendmethodurlheaders_reprhasattrgetattrreplacejoin)r   requestretfieldattrs        r   _requests_request_reprrI   1   s|   	t####$$$34337>33444-4----...&4&&&'''o F FU**DeDDc7?5+A B BDDEEEE' H HTWd H 6 6 H::%T%%D%%%&&&::eC$//0088vFFGGG
r   Tc                    g }|                     |  d|           |                     d|  d|j                    |                     d|  d           |                     t          d|j                                      dd                     |r|j        r|                     d|  d           |j        D ]P}|                     d           |                     t          d|d	
                              dd                     Q|                     d           |                     d|  d|j                    |                     d|  d           |j        D ]6}|                     d| dt          d|j        |                               7|                     d|  dt          d|j	                              d
                    |          S )Nr0   r1   r2   z.request = r5   r:   z.history = [r4   F)withHistoryz
  ]z.status_code = r3   z.content = r;   )r<   r>   r@   rE   rC   history_requests_response_reprstatus_coder?   contentrD   )r   responserK   rF   previousResponserG   s         r   rM   rM   @   s
   	t$$$$%%%.4....///$4$$$%%%E#x'((00v>>??? H$ **&D&&&'''"* k k::h::%c+;5QQQYYZ^`hiijjjj**W>4>>(<>>???&4&&&''' G GU**EeEEc8+;E+B C CEEFFFFB4BBE#x/?$@$@BBCCC
r   c                 l   g }|                     |  d|           |                     dt          |  d|j                                      dd          z              |                     dt          |  d|j                                      dd          z              d                    |          S )Nr0   r1   z.requestr:   z	.responser;   )r<   r@   rE   rC   rP   rD   )r   excrF   s      r   _requests_exception_reprrT   T   s    	t   FUd,,,ck::BB4PPPQQQFUd---s|<<DDT6RRRSSS
r   c                     t                    t          j        u rt                     S t                    t          j        t          j        fv rt                     S t          t          j        j	                  rt                     S t          t                    rc  dt                    j         dt                    j         dd                     fd                                D                       z   S t          t           t"          t$          j        f          rwt)          d D                       s^  dt                    j         dt                    j         dd                     fdt+                    D                       z   S t-          j                  ryt          t                     sd  dt                    j         dt                    j         dd                     fdt-          j                  D                       z   S   d	}d
|v r+d                    d|                    d
d          g          S |S )Nz = <r9   z>
  r1   c              3   r   K   | ]1\  }}t           d |d|                              dd          V  2dS []r:   r1   Nr@   rC   ).0kvr   s      r   	<genexpr>z_repr.<locals>.<genexpr>e   sR      ``$!QUd++Q+++Q//77fEE``````r   c              3   N   K   | ] }t          |t          t          f          V  !d S r   )
isinstanceintstr)r[   r]   s     r   r^   z_repr.<locals>.<genexpr>f   s4      CmCmbcJqSVX[R\D]D]CmCmCmCmCmCmr   c              3   r   K   | ]1\  }}t           d | d|                              dd          V  2dS rW   rZ   )r[   ir]   r   s      r   r^   z_repr.<locals>.<genexpr>h   sM      aa1Ud>>Q>>>1--55dFCCaaaaaar   c           	   3      K   | ]h}t           d |j         |j                  dz   t           d |j         t          |j                                                dd          z   V  idS )r9   r0   r:   r1   N)r@   r   rB   rC   )r[   fr   values     r   r^   z_repr.<locals>.<genexpr>k   s        m  m  NOUd--QV--qv66>$GYGYQRQWGYGY[bchjkjp[q[qArArAzAz{  BH  BI  BI  I  m  m  m  m  m  mr   r0   r:   r;   z\
  )typerequestsResponserM   PreparedRequestRequestrI   r`   
exceptionsRequestExceptionrT   dictr+   r*   rD   itemslisttuplecollectionsdequeall	enumeratedataclassesis_dataclassfieldsrC   )r   rg   	valueReprs   `` r   r@   r@   \   s   KK8$$$	 u	-	--KKH,h.>???	e	,	,,uh):;; /	!$	.	..ud a	J	Jd5kk,	J	JtE{{/C	J	J	J	````RWR]R]R_R_```	`	`
a autUK$5677 bCmCmglCmCmCm@m@m b	J	Jd5kk,	J	JtE{{/C	J	J	J	aaaaPYZ_P`P`aaa	a	a
b bU## mJud,C,C m	J	Jd5kk,	J	JtE{{/C	J	J	J	  m  m  m  m  m  S^  Se  fk  Sl  Sl  m  m  m  
m  
m
m m""""I	(I--dF;;<	=	==r   c               #      K   	 d V  d S # t           $ rf} t          j                    }t          |          dk    r:t	          |dd          |           }t
                              d| ddi            d } ~ ww xY w)Nr	      )rS   r   r   T)r   )	Exceptionr   tracer   r   loggerfatal)er~   r   s      r   _dump_locals_on_exceptionr   r   s      %%%%%   
-//%ZZ1__
 qrr!
4
4
44	<<4d44?\^b>c<ddds   
 
A:A!A55A:c                 d   t          j        ddd          5 }||                    d           |                    dt          |          j         dt          |          j         d|d	           |                    d
|j        d	           |                    d	           |                    d           | D ]l}|                    d|j         d|j         d|j	         d	           |j
        5|j
        D ]-}|                    d|                                 d	           .m|                    d	           d | D             }t          t          ||                     D ]\  }\  }}|2t          t          |                    D ]}||          n5||         }|j                            d          s|j        dk    rc|d         j        }	|                    d|j         d|j         d|j	         d           |	D ]}
|	|
         }t%          |
|          }|                    d|
 dt          |           d           |                    |                    d	d                     |                    d	           |                    d	           d|	v rmt)          |	d         d          rW|                    d           |                    t+          |	d         j                             |                    d           |j        }d d d            n# 1 swxY w Y   |S )Nwsnscrape_locals_F)prefixdeletezException:
z  r9   : r:   z  args: zStack:
z  File "z", line z, in z    c                 B    g | ]}t          j        |d                    S )r   )r   	getmodule)r[   frameRecords     r   
<listcomp>z*_dump_stack_and_locals.<locals>.<listcomp>   s'    HHH;W{1~..HHHr   z	snscrape.snscraper   zLocals from file "z:
 r0   r1   r   __dict__zObject dict:
z

)tempfileNamedTemporaryFilewriterh   r+   r*   r   filenamelinenofunctioncode_contextstriprv   zipreversedrange
startswithf_localsr@   rC   rA   reprr   r   )r~   rS   fpr   linemodulesrd   modulejlocals_variableNamevariablevarReprr   s                 r   r   r   ~   s   !#0BUSSS )WY_88N88Gc%GGS		(:GGcGGGHHH88%sx%%%&&&88D>>>((: ' 'k88f{+ff[5GffkNbfffggg*( ' 'XX%TZZ\\%%%&&&&((4...HH%HHH'"+C,?,?"@"@  a	&+neAhh  
e 	 QZF
/
$
$[
1
1 fo6S6S^$788q!5qq{?QqqXcXlqqqrrr  ||$HL(++GHH4,44h444555HHW__T6**+++HHTNNNN88D>>>GGFOZ@@HHHHT'&/*++,,,HHV	$S) ) ) ) ) ) ) ) ) ) ) ) ) ) )T 	s   LL%%L),L)c                    dD ]d}	 t           j                             | |          }|j        '|                    t           j        j                  c S |c S # t          $ r Y aw xY w	 t           j                             t          |           t           j        j                  }|S # t          $ r Y nw xY wt          j
        d| d          )N)z%Y-%m-%d %H:%M:%S %z%Y-%m-%d %H:%M:%Sz%Y-%m-%d %zz%Y-%m-%d)tzinfozCannot parse z into a datetime object)datetimestrptimer   rC   timezoneutc
ValueErrorfromtimestampra   argparseArgumentTypeError)argformatds      r   parse_datetime_argr      s    W  V!!#v..1 h99h/3944444
888 
   8%%c#hh0A0EFF! 
( 	   $ !"P#"P"P"PQQQs#    A
A%$A%)<B' '
B43B4c                     |                      d          }d}t          t          ||dd                              }|D ]*\  }}||z  }|dk    r|dz  }t          |           %|dz  }+||d         z  }|S )N{r;   r|   z{{z{0.r
   )splititerr   next)r   partsoutitpartnextParts         r   parse_formatr      s    	3	
3ueABBi  !!  ^T8+#^^$;38888%<33b	r   c                   B     e Zd Zej        fej        d fdZd Z xZS )CitationAction)defaultc                D     t                      j        ||g|R i | d S r   )r   __init__)r   option_stringsdestr   r   r   r   s         r   r   zCitationAction.__init__   s2    %''>49$999&99999r   c                    	 t           j                            d          }nJ# t           j        j        $ r3 t          dt          j                   |                    d           Y nw xY wt          d|d                     t          d|d          d	|d
                     t          d|d                     t          d|d                     t          d|d                             dd          d         d d                     d|d         v rt                       t          d           |                                 d S )Nr   zjError: could not find snscrape installation. --citation does not work without the package being installed.filer|   zAuthor: authorzTitle: r   r   summaryzURL: z	home-pagez	Version: versionu   Date: 2018‒r9   r      z.devzWARNING! You are running a development version. The date range may be incorrect. Please adjust the upper end of the range to the year of the commit.)	importlibmetadataPackageNotFoundErrorprintsysstderrexitr   )r   parser	namespacevaluesoptionStringms         r   __call__zCitationAction.__call__   sv   "":..11			0   	u  B  I  J  J  J  J	;;q>>>>>  1X;  !!!-!F)--q|--... +  !!!"AiL""###;)**32215bqb9;;<<<q|777  
`  a  a  a++-----s   " AA)(A))r*   r+   r,   r   SUPPRESSr   r   r-   r.   s   @r   r   r      sa        +3+< :xO` : : : : : : :      r   r   c            	        	 dd l } dd l} dd l} t          j        t          j                  		                    ddd| j        j                    	                    dt          dd	           	                    d
dddddd           	                    ddddd           	                    dddt          ddd           	                    ddd	fd dd!"           	                    d#          }|                    d$d%d&t          d d'(           |                    d)d*ddd+           |                    d,d-ddd.           	                    d/d0ddd1           	                    d2t          d3d45           	                    d6ddd78           	                    d9d:d;d<=          }| j        j                                        }i }|D ]:}|j        
|||j        <   |                    |                                           ;t)          |                                          D ]W\  }}|                    |j        d>t          j        ?          }|                    |           |                    |@           X	                                }|j        s |j        dk    r	                    dA           |j        rd<|_        |S )BNr   )formatter_classz	--versionr   z	snscrape )actionr   z
--citationz1Display recommended citation information and exit)r   nargshelpz-vz	--verbosez--verbosity	verbositycountzIncrease output verbosity)r   r   r   r   z--dump-localsr   
store_trueFzADump local variables on serious log messages (warnings or higher)z--retryz	--retriesretriesr   NzwWhen the connection fails or the server returns an unexpected response, retry up to N times with an exponential backoff)r   rh   r   metavarr   z-nz--max-results
maxResultsc                 r    t          |           dk    rt          |           n                    d          S )Nr   z(--max-results N must be zero or positive)ra   r%   )xr   s    r   <lambda>zparse_args.<locals>.<lambda>   sG    \_`a\b\bfg\g\gRUVWRXRXRXmsmymy  {e  nf  nf r   zOnly return the first N results)r   rh   r   r   )requiredz-fz--formatr   zOutput format)r   rh   r   r   z--jsonljsonlzOutput JSONLz--jsonl-for-buggy-int-parserjsonlForBuggyIntParserzgOutput JSONL and insert extra string fields into objects for integers exceeding double precision limitsz--with-entity
withEntityz@Include the entity (e.g. user, channel) as the first output itemz--sinceDATETIMEz'Only return results newer than DATETIME)rh   r   r   z
--progresszReport progress on stderr)r   r   r   scraperSCRAPERscrapersT)r   r   titler   r;   )r   r   )clsz:--max-results 0 is only valid when used with --with-entity)snscrape.basesnscrape.modulessnscrape.versionr   ArgumentParserArgumentDefaultsHelpFormatteradd_argumentr   __version__r   ra   add_mutually_exclusive_groupr   r   add_subparsersbaseScraper__subclasses__r   extendsortedrp   
add_parser_cli_setup_parserset_defaults
parse_argsr   r   r%   r   r   )
r   group
subparsersclassesr   r   r   	subparserr   r   s
            @r   r  r     s   

!H4Z
[
[
[[9@jHL\Lh@j@jkkk\NA  OB  C  C  CT;kT[gh  rM  N  N  N_\L\a  kn  o  o  oYIcUVbe 
C  D D DT?<  If  If  If  If  ru  ~_  `  `  `		,	,	,	>	>D*XlVZcrsssIgPU^lmmm2;S^jv{  En  o  o  o_\L\a  km  n  n  nY'9Z  YB  C  C  C\LERmnnn##9	S]jn#oo= //11 ' 'SX8CH	..##%%&&&&HNN,,-- $ $\Wc##CHR8Kq#rr)	"""s#### MDOq00,,KLLL $*r   c                  j    t          j        t                     t          j        t                    ad S r   )r   setLoggerClassr   	getLoggerr*   r    r   r   setup_loggingr    s'    

H
%
%r   c                    |a t          j                    }| dk    rR| dk    rt          j        nt          j        }|                    |           |j        D ]}|                    |           t          j        ddd          }|j        D ]}|                    |           t          j	                    }|
                    |           |                    |           d S )Nr   r|   z7{asctime}.{msecs:03.0f}  {levelname}  {name}  {message}r   r   )datefmtstyle)r   r   r  INFODEBUGsetLevelhandlers	FormatterremoveHandlerStreamHandlersetFormatter
addHandler)r   dumpLocals_
rootLoggerr   handler	formatters         r   configure_loggingr!    s   !! MM#q..',,gm%e$  g
E Xdw  BE  F  F  F # $ $W7####  ""i   wr   c                  8   t                       t                      } t          | j        | j                   | j                            |           }d}t                      5  	 | j        rH|j	        x}r?| j
        r)t          |                    | j                             nt          |           | j        dk    r(t                              d           	 d d d            d S t#          |                                d          D ]7\  }}| j        5|j        | j        k     r%t                              d| j                     n;| j
        r)t          |                    | j                             n>| j        (t          | j                            |                     nt          |           | j        r(|dz  dk    rt          d| d	t.          j        
           | j        rQ|| j        k    rFt                              d| d           | j        rt          d| dt.          j        
            nF9t                              d| d           | j        rt          d| dt.          j        
           n|# t2          $ ro t5          j        t5          j        t4          j        t4          j                  t.          j                                                    t/          j!        d           Y nw xY wd d d            d S # 1 swxY w Y   d S )Nr   )forBuggyIntParserzExiting after 0 resultsr|   )startz+Exiting due to reaching older results than d   z
Scraping, z results so farr   zExiting after z resultszStopped scraping after z results due to --max-resultszDone, found z
Finished, )"r  r  r!  r   r   r   _cli_from_argsr   r   entityr   r   jsonr   r   r   inforv   	get_itemssincedater   progressr   r   BrokenPipeErrorosdup2opendevnullO_WRONLYstdoutfilenor   )r   r   rd   r'  items        r   mainr7  2  sZ   4>4?3338""4((!! ! ! 
o W^36 z 
6;;4+F;GGHHHH
6]]]
o
KK)***
! ! ! ! ! ! ! ! G--//;;; 8 8wq$z$)dj"8"8[[KtzKKLLL
Uz 
499)D9EEFFFF		 
4;d##$$$$
4[[[} ?SA
****3:>>>> 1//[[-!---... [FaFFFszZZZZ
U
KK*q***+++} 8
####CJ7777	   7272:r{++SZ->->-@-@AAA8A;;;;;?! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s?   !L#A4J%F JLA6K?<L>K??LLL)Tr   )r   rs   
contextlibrw   r   importlib.metadatar   r   r   r/  ri   r   r   r   r   r   rI   rM   rT   r@   contextmanagerr   r   r   r   Actionr   r  r  r!  r7  r  r   r   <module>r<     s                       				 
 


  
	' ' ' ' 'W^ ' ' '2     (    ,   + + + +\R R R(       X_   .( ( (V& & &     4( ( ( ( (r   