
    i                     ~    S r SSKJrJr  SSKJrJrJr  SSKJr  Sr	 " S S\5      r
 " S	 S
\
5      r " S S\
5      rg)z%Extractors for https://vipergirls.to/   )	ExtractorMessage   )textutil	exception)cachez&(?:https?://)?(?:www\.)?vipergirls\.toc                   b    \ rS rSrSrSrSrSrSrSr	Sr
S	 rS
 rS r\" SSS9S 5       rS rSrg)VipergirlsExtractor   z$Base class for vipergirls extractors
vipergirlszhttps://vipergirls.tog      ?g?z.vipergirls.to)	vg_useridvg_passwordc                 4   U R                  S5      =n(       ar  UR                  S5      nUS:  a5  UR                  S5      U l        SXS-   S  R	                  S5      -   U l        g UR	                  S5      nSU-   U l        SU-   U l        g SU l        S	U l        g )
Ndomainz://    /.r   zhttps://zhttps://viper.clickz.viper.click)configfindrstriprootstripcookies_domain)selfr   poss      L/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/vipergirls.py_initVipergirlsExtractor._init   s    [[**6*++e$Cax"MM#.	&)Fq56N,@,@,E&E#c*&/	&)Fl#-DI"0D    c              #     #    U R                  5         U R                  5       nUS   R                  S   nUS   R                  S   nU R                  S5      =n(       a@  US   R	                  S5      n[        U5      S:  a  U R                  R                  S5        S	nUR                  S
5      nU R                  S5      =n(       aY  US   S;  aP  U R                  (       a>  [        R                  " U[        R                  " U R                  SS  5      S-
  S-  5        OW[        U5      nU R                  (       a+  [        R                  " U R                  SS  5      S-  nUS U nUR                  5         U H  n	[        U	5      n
U	R                  nX+S'   U R                   US'   X;S'   UR#                  S5      US'   UR#                  S5      US'   UR#                  S5      US'   [        U
5      US'   US	 [$        R&                  SU4v   U
(       d  M  [)        U
S5       H+  u  US'   n[$        R*                  UR                  S   U4v   M-     U(       d  M  U R-                  U	W5        M     g 7f)Nr   titler   liker   hash   zLogin required to like postsFpostzorder-posts)dr      forum_title	thread_idthread_titleidpost_idnumberpost_num
post_titlecount
imagecount nummain_url)loginpostsattribr   getlenlogwarningiterpager   advancer   	parse_intlistreverser,   popr   	Directory	enumerateQueuer#   )r   r   r+   r-   r#   	user_hashr9   orderoffsetr&   imagesdataimages                r   itemsVipergirlsExtractor.items)   s    

zz|1gnnW-Aw~~g.;;v&&4&QF+I9~"  !?@		&![[//E/a
*yyUT^^DIIabM%BQ%F"$LMKEyy		!"6;gvMMOD$ZF;;D"- $D#/ "hhtnDO#xx1D!%'!2DKDM\"##R--v*3FA*>&DK!--j)A4GG +?4IIdI.% s   HI1A I1I1c                     U R                  U R                  5      (       a  g U R                  5       u  pU(       a!  U R                  U R	                  X5      5        g g N)cookies_checkcookies_names_get_auth_infocookies_update_login_impl)r   usernamepasswords      r   r8   VipergirlsExtractor.loginU   sN    d0011!002 0 0 DE r    i v r   )maxagekeyargc                 `   U R                   R                  SU5        U R                  S-   nUUSSS.nU R                  USUS9nUR                  R                  S5      (       d  [        R                  " 5       eUR                   Vs0 s H  nUR                  UR                  _M     sn$ s  snf )	NzLogging in as %sz/login.php?do=loginr8   1)vb_login_usernamevb_login_passworddo
cookieuserPOST)methodrM   r   )
r=   infor   requestcookiesr;   r   AuthenticationErrornamevalue)r   rX   rY   urlrM   responsecookies          r   rW   VipergirlsExtractor._login_impl]   s    ((3ii//!)!)!(!$	
 <<F<>##M22//11 '..0.F V\\).0 	0 0s   !B+c                     U R                   S-   nSUR                  S5      US.nU R                  X4SS9    S S S 5        g ! , (       d  f       g = f)Nz/post_thanks.phppost_thanks_addr.   )ra   psecuritytokenF)paramsallow_redirects)r   r;   rf   )r   r&   rI   rk   rs   s        r   r#   VipergirlsExtractor.likep   sK    ii,,.!XXd^&
 \\#e\D EDDs   A  
A)r   r   N)__name__
__module____qualname____firstlineno____doc__categoryr   request_intervalrequest_interval_minr   rT   r   rO   r8   r	   rW   r#   __static_attributes__ r    r   r   r      sV    .H"D%N0M1*/XF (1%0 &0$	r    r   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
VipergirlsThreadExtractor|   z Extractor for vipergirls threadsthreadz6/threads/(\d+)(?:-[^/?#]+)?(/page\d+)?(?:$|#|\?(?!p=))z)https://vipergirls.to/threads/12345-TITLEc                 h    [         R                  X5        UR                  5       u  U l        U l        g rR   )r   __init__groupsr,   r@   r   matchs     r   r   "VipergirlsThreadExtractor.__init__   s$    $$T1$)LLN!	r    c                 Z    U R                    SU R                   3nU R                  U5      $ )Nz
/vr.php?t=)r   r,   request_xmlr   rk   s     r   r9   VipergirlsThreadExtractor.posts   s,    :dnn%56$$r    )r@   r,   Nrv   rw   rx   ry   rz   subcategoryBASE_PATTERNpatternexampler   r9   r~   r   r    r   r   r   |   s'    *KHIG9G3%r    r   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
VipergirlsPostExtractor   zExtractor for vipergirls postsr&   z1/threads/(\d+)(?:-[^/?#]+)?\?p=\d+[^#]*#post(\d+)z;https://vipergirls.to/threads/12345-TITLE?p=23456#post23456c                 v    [         R                  X5        UR                  5       u  U l        U l        SU l        g )Nr   )r   r   r   r,   r/   r@   r   s     r   r    VipergirlsPostExtractor.__init__   s+    $$T1',||~$	r    c                 Z    U R                    SU R                   3nU R                  U5      $ )Nz
/vr.php?p=)r   r/   r   r   s     r   r9   VipergirlsPostExtractor.posts   s+    :dll^4$$r    )r@   r/   r,   Nr   r   r    r   r   r      s'    (KCDGKG
%r    r   N)rz   commonr   r   r5   r   r   r   r	   r   r   r   r   r   r    r   <module>r      sD    , & $ $ 8g) gT% 3 % %1 %r    