
    iB                         S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ	r	  SSK
J
r
   " S S5      rS rS	 rS
 rS rS rS rS rS rS rg)z3Twitter 'x-client-transaction-id' header generation    N   )textutil)cachec                   x    \ rS rSrSrS rS rSS jrS r\	" SS	S
9S 5       r
S r SS jrS rS r SS jrSrg)ClientTransaction   	key_bytesanimation_keyc                 2    U R                   U R                  4$ Nr
   )selfs    F/app/mltbenv/lib/python3.13/site-packages/gallery_dl/transaction_id.py__getstate__ClientTransaction.__getstate__    s     2 233    c                 "    Uu  U l         U l        g r   r
   )r   states     r   __setstate__ClientTransaction.__setstate__#   s    -2**r   Nc                 v   Uc  UR                  S5      R                  nU R                  U5      nU(       d  UR                  R	                  S5        UR                  S5      n[        R                  " USSU5      n[        R                  " X%S-   SU5      S   nU R                  Xa5      nU(       d  UR                  R	                  S	5        U R                  U5      nU(       d  UR                  R	                  S
5        [        R                  " U5      =U l        n	U R                  XS   XSS  5      U l        g )Nzhttps://x.com/z1Failed to extract 'twitter-site-verification' keyz"ondemand.s",:z:""r   z"Failed to extract KEY_BYTE indicesz&Failed to extract animation frame datar   )requestr   _extract_verification_keylogerrorfindrextrextract_extract_indices_extract_framesbinascii
a2b_base64r   _calculate_animation_keyr   )
r   	extractorhomepagekeyondemand_posondemand_key
ondemand_sindicesframesr   s
             r   
initializeClientTransaction.initialize&   s    (()9:??H,,X6MMCE  }}^4zz(ClC\\T)3>>?A
 ''
>MM DE%%h/MM HI%-%8%8%==!::AJ	12;8r   c                     UR                  S5      nUR                  SSU5      nUR                  SU5      n[        R                  " XU SS5      $ )Nz name="twitter-site-verification"<r   >z	content="r   )r    rfindr   extr)r   r)   posbegends        r   r   +ClientTransaction._extract_verification_key@   sK    mm>?nnS!S)mmC%yyc*K==r   l    w r   )maxagekeyargc                     SU S3nUR                  U5      R                  n[        R                  " S5      nUR	                  U5       Vs/ s H  n[        U5      PM     sn$ s  snf )Nz;https://abs.twimg.com/responsive-web/client-web/ondemand.s.za.jsz\(\w\[(\d\d?)\],\s*16\))r   r   r   
re_compilefindallint)r   r-   r(   urlpagepatternis          r   r#   "ClientTransaction._extract_indicesF   sa    (\/  %**//"<= ' 56 51A 5666s   A#c                 D    [        [        R                  " USS5      5      $ )Nzid="loading-x-anim-z</svg>)listr   extract_iter)r   r)   s     r   r$   !ClientTransaction._extract_framesN   s$    D%%+X7 8 	8r   c                     XS   S-     nU R                  U5      nXsU   S-     nSn	U H  n
XU
   S-  -  n	M     [        U	S-  5      S-  n	X-  nU R                  X5      $ )N         r   
   )_generate_2d_arrayround_jsanimate)r   r/   	row_indexr   key_bytes_indices
total_timeframearray	frame_row
frame_timeindextarget_times               r   r'   *ClientTransaction._calculate_animation_keyR   s    |a'(''.I.34	
&EE*R//J 'j2o.3
 -||I33r   c           
      "   [         R                  " S5      R                  n[        R                  " USS5      SS  R                  S5       VVs/ s H-  nU" U5       Vs/ s H  oD(       d  M  [        U5      PM     snPM/     snn$ s  snf s  snnf )Nz[^\d]+z</path><path d="r   	   C)r   r>   splitr   r6   r@   )r   rU   r_   pathxs        r   rO   $ClientTransaction._generate_2d_array`   s    	*00 		)3001449E#J?
? #4[.[AVSV[.?
 	
.
s   B
B,B;BBc                    [        USS  5       VVs/ s H%  u  p4[        [        U5      [        U5      SS5      PM'     nnn[	        XR5      n[        US   5      [        US   5      [        US   5      4n[        US   5      [        US   5      [        US	   5      4n[        XgU5      n	U	 V
s/ s H  n
U
S
::  a  S
O	U
S:  a  SOU
PM     n	n
S
n[        [        US   5      SSS5      n[        XkU5      n[        U5      n[        [        U	S   5      5      SS  [        [        U	S   5      5      SS  [        [        U	S   5      5      SS  [        [        [        US   S5      5      5      [        [        [        US   S5      5      5      [        [        [        US   S5      5      5      [        [        [        US   S5      5      5      S4nSR                  U5      R                  SS5      R                  SS5      $ s  snnf s  sn
f )N         ?Fr   r         rL   rK                o@   g      N@g     v@T00 .-)	enumeratescalefloatis_oddcubic_valueinterpolate_listinterpolate_valuerotation_matrix_2dhexroundfloat_to_hexabsjoinreplace)r   r/   rZ   rY   rU   curvecubiccolor_acolor_bcolorc
rotation_a
rotation_brotationmatrixresults                   r   rQ   ClientTransaction.animateh   s   %.vabz%:<%:\U uU|VE]C?%: 	 <E/#U6!9%5uVAY7GH#U6!9%5uVAY7GH 9!Q SqEzeq@ 	 ! 
5+T5$?
$U
C#H- eAh $eAh $eAh $U6!9a012U6!9a012U6!9a012U6!9a012	
 wwv&&sB/77R@@3<!s   ,G>.Hc           
      ,  ^ U R                   n[        R                  " 5       n[        U5      nUS-
  nUS-  US-	  S-  US-	  S-  US-	  S-  4n	U SU SU U U R                   3n
[        R
                  " U
R                  5       5      R                  5       S S n[        R                  " S5      S-  [        Xg-
  S-  5      -   m[        U4S	 j[        R                  " S
XYX45       5       5      n[        R                  " U5      R                  S5      $ )NipcOd      rM      !rL         0@c              3   .   >#    U  H
  nUT-  v   M     g 7fr    ).0bytenums     r   	<genexpr><ClientTransaction.generate_transaction_id.<locals>.<genexpr>   s"      
D 3JDs   )r   s   =
)r   timer@   r   hashlibsha256encodedigestrandom	randrangebytes	itertoolschainr%   
b2a_base64rstrip)r   methodr`   keywordrndnum	bytes_keynowfnowinow
bytes_timepayload
bytes_hashr   r   s                @r   generate_transaction_id)ClientTransaction.generate_transaction_id   s   NN	yy{4yZ$QY$BY$BY$	

 HAdV1SE'43E3E2FG^^GNN$45<<>sC
#q(C0D,EE 
!iZD
 

 ""6*11&99r   )r   r   r   )i   )obfiowerehiringrg   )__name__
__module____qualname____firstlineno__	__slots__r   r   r0   r   r   r#   r$   r'   rO   rQ   r   __static_attributes__r   r   r   r   r      s^    .I4384> +a(7 )78
 @D4
A: CD:r   r   c                    US::  a?  U S   S:  a  U S   U S   -  nX!-  $ U S   S:X  a  U S   S:  a  U S   U S   -  nX!-  $ SnX!-  $ US:  aK  U S   S:  a  U S   S-
  U S   S-
  -  nO&U S   S:X  a  U S   S:  a  U S   S-
  U S   S-
  -  nOSnSX!S-
  -  -   $ SnSnX4:  aO  X4-   S-  n[        U S   U S   U5      n[        X-
  5      S:  a  [        U S   U S   U5      $ Xa:  a  UnOUnX4:  a  MO  [        U S   U S   W5      $ )	Nrh   r   r   rf   rg   re   g       @gh㈵>)cubic_calculaterz   )r}   tvaluestartr9   midests          r   rs   rs      si   Cx8c>!HuQx'E
 y	 1X_qC!HuQx'E y EyCx8c>1X^a37E1X_qC1X^a37EEU#g&&&E
C
+{c!eAha#6qw<'!"58U1Xs;;7EC + 58U1Xs33r   c                 V    SU-
  nSU -  U-  U-  U-  SU-  U-  U-  U-  -   X"-  U-  -   $ )Nre   g      @r   )abmm1s       r   r   r      sA    	qBq58B;q=3q58A:a<'!#a%//r   c           	      t    [        [        U5      5       Vs/ s H  n[        XU   X#   5      PM     sn$ s  snf r   )rangelenru   )ra   r   r   rD   s       r   rt   rt      s>     s1vA 	!qT14(  s   5c                 Z    [        U[        5      (       a
  U S::  a  U$ U$ USU -
  -  X -  -   $ )N      ?re   )
isinstancebool)ra   r   r   s      r   ru   ru      s5    !THq#!#a=15  r   c                     [         R                  " U 5      n[         R                  " U5      n[         R                  " U5      nX#* X2/$ r   )mathradianscossin)degradr   r   s       r   rv   rv      s7    
,,s
C
((3-C
((3-Cs  r   c                 0   [        U 5      nX-
  nU(       d  [        U5      SS  $ S/nUS:  aJ  US-  n[        U5      nX$-  nUR                  US:  a  [        US-   5      O
[	        U5      5        US:  a  MJ  [        U5      SS  SR                  U5      -   $ )Nrf   rm   rh   r   r]   W   rl   )r@   rw   appendchrstrr{   )numfnumifractionr   integers        r   ry   ry      s    t9D{H4y}UF
S.Dh-7Q;c'B,'CLI	 S.
 t9QR=2776?**r   c                     U S-  (       a  S$ S$ )Nrf   g      rh   r   )r   s    r   rr   rr      s    74##r   c                 n    [         R                  " U 5      nX-
  S:  a  U$ [         R                  " U 5      $ )Nr   )r   floorceil)r   r   s     r   rP   rP      s+    JJsOE[C'5;TYYs^;r   c                 n    XU-
  -  S-  U-   nU(       a  [         R                  " U5      $ [        US5      $ )Nri   rf   )r   r   rx   )r   	value_min	value_maxroundingr   s        r   rp   rp      s6    	)*U2Y>F!)4::f?uVQ/??r   )__doc__r   r   r   r   r%   r   rl   r   r   r   r   rs   r   rt   ru   rv   ry   rr   rP   rp   r   r   r   <module>r      s^   " :        ~: ~:F4B0!!+ $<
@r   