
    8jK                         d Z ddlZddlZddlmZmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ej                  j                  ej                  j                  e            Z eej                  j%                  ed            Zed   Zej                  j+                  e      sej                  j%                  ee      Zd	 Z ed
      Zd Zd Z edd       dZ ed      D ]   Z	  edd       dZ ededz   dd        n es ed        ed       edd       g dZ dZ!e D ]  Z"	  ee"d      Z# ej<                  d        ee"d      Z$ ej<                  d        ede"dd ee#jK                  d             d e#jK                  d!       d" ee$jK                  d             d e$jK                  d!       d#d       e$jK                  d!      du re#jK                  d!      d$v re!d%z  Z! e!rd'nd(Z' ed)e! d* e(e        d+e' d,d        ed-d        e	i edd.d/      Z)dZ* ee      D  cg c]  } | jV                  s|  c} D ]  Z,	 e)j[                  e,j\                   e       ez
  d0       e)j^                  jK                  e,j\                  ja                  d      i       Z1e1jK                  d!      rd1nd2Z2e1jK                  d!      se*d%z  Z* ed3e2 d4e,j\                  d5d6 ee1jK                  d             d         ed9e* d:       y# e
$ r  ej<                  d       Y Tw xY w# e
$ rZ& ede"dd&e& d       Y dZ&[&-dZ&[&ww xY wc c} w # e
$ r&Z& ed7e,j\                  d5d8e& d       Y dZ&[&8dZ&[&ww xY w);u  Validación automática del cache-bust (corre en segundo plano).

1) Espera a que la IP salga del rate-limit de X (sondea cada 2 min).
2) Compara cache-bust ON vs OFF en las cuentas que venían 'viejas' -> ¿ayuda?
3) Repasa las 10 cuentas con cache-bust ON.
    N)datetime	timedeltatimezone)load_config)SyndicationProviderSyndicationError)load_accountszconfig.yamlaccounts_pathc                  H    t        j                  t        j                        S )N)r   nowr   utc     validate_cachebust.py<lambda>r      s    hll8<<(r      )daysc                     t        dd|d      }|j                  | t               t        z
  d       |j                  j                  | j                  d      i       S )N   r   )syndication_delay_secondssyndication_retriessyndication_cache_bust2   @)r   fetch_user_tweetsr   WIDE	last_metagetlstrip)handle
cache_bustps      r   
fetch_metar#      sQ    !TU7AC 	DAb1;;??6==-r22r   c                 ^    t        | d      r | r| j                         j                         S dS )Ndateu   —)hasattrr%   	isoformat)dts    r   date_strr)   !   s'    $+B$7B2779 IEIr   uJ   Esperando a que la IP salga del rate-limit (sondeo cada 2 min, máx 30)...T)flushF   
TechCrunchu   ✅ Desbloqueado (tras ~   z min).
x   uS   Sigue bloqueado tras 30 min. Prueba run_real.py más tarde.
VALIDATION_INCONCLUSIVEu9   === cache-bust OFF vs ON (cuentas que venían viejas) ===)karpathyrowancheung	AndrewYNgr   r   12z OFF: newestz (viejo=stalez) | ON: ))TN   z error: CACHE_BUST_WORKSCACHE_BUST_INSUFFICIENTz
Mejoradas por cache-bust: /z  ->  
z@=== repaso de todas las cuentas (cache-bust ON, ventana 30d) ===   )r   r   r   u
   🟠 viejou
   ✅ frescoz  z  @13u
    último: u     ❌ error  @ z

Frescas: z/10
VALIDATION_DONE)3__doc__ostimer   r   r   agent.configr   agent.providers.syndicationr   r   agent.storer	   pathdirnameabspath__file__HEREjoincfgapisabsr   r   r#   r)   print	unblockedrangeisleep
SystemExitstale_handlesimprovedhoffonr   everdictlenproviderfreshenabledar   r    r   r   metatag)xs   0r   <module>rb      s   
  2 2 $ M %	wwrwwx01"'',,t]34	ww}}R	dB	B(b3J
 RZ^ _		rA<&	(Qx8E 
 	
`a
Q- A N8	A
1E"

14 

1!Bvhswwx'89:(3777CSBT UbffX./08ILSW	Y66'?e#(8L(HMH 
 !)
.G $XJaM0B/C6'RTU]a b HPT Uf#fdefg	"2&	4&!))!&	4A>""188SUT\2>!!%%ahhooc&:B?"hhw/l\xx QJE3%s188B-z(488H;M2N1OPX\] 
5 E7./ 0U  

3*  1!Bxs#4001 
5  >qxxm1QC0==>sP   %L,CL97M	MB8M"L65L69M>MM"N'NN