
    i$                     j    S r SSKJr  SSKJr  SSKr " S S\5      r " S	 S
\5      r " S S\5      rg)z!Extractors for https://rule34.us/   )BooruExtractor   )text    Nc                   ,    \ rS rSrSrSrSrS rS rSr	g)	Rule34usExtractor   rule34uszhttps://rule34.us*   c                 N    [         R                  " S5      R                  U l        g )Nz7<li class="([^-"]+)-tag"[^>]*><a href="[^;"]+;q=([^"]+))r   refindall
_find_tagsselfs    J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/rule34us.py_initRule34usExtractor._init   s    ''FHHO 	    c           
      p   U R                    SU 3nU R                  U5      R                  n[        R                  " U5      nU[        R                  " U" SS5      R                  S5      5      [        R                  " U" SS5      SS5      S	   [        R                  " U" S
S5      SS5      S	   U" SS5      U" SS5      U" SS5      =(       d	    U" SS5      S.nUS   nSU;   a  UR                  SS5      US'   U4US'   UR                  S5      S   R                  S5      S	   US'   [        R                  " [        5      nU R                  U5       H,  u  pxXg   R                  [        R                  " U5      5        M.     UR!                  5        H  u  pSR#                  U
5      USU	-   '   M     U$ )Nz/index.php?r=posts/view&id=zname="keywords" content=""z, z
Added by: z</li>><r   zScore: z> - <zSize: wz x hz<source src="z
<img src=")idtagsuploaderscorewidthheightfile_urlr"   z//video-cdn1.z//video.	_fallback/r   .md5 tags_)rootrequestr   extract_fromunescaperstripextractreplace
rpartition	partitioncollectionsdefaultdictlistr   appendunquoteitemsjoin)r   post_idurlpageextrpostr   tag_typetag_namekeyvalues              r   _parse_postRule34usExtractor._parse_post   s   6wi@||C %%  &  d+S'228&,@T,%@#sKANT)W%=sCHKXs+UC(_c2Md<6M	
 :c!"{{?JGD!$DnnS)!,66s;A>U&&t,"&//$"7HN!!$,,x"89 #8**,JC"%((5/D3 ' r   )r   N)
__name__
__module____qualname____firstlineno__categoryr)   per_pager   rB   __static_attributes__ r   r   r   r      s    HDHPr   r   c                   :    \ rS rSrSrSrSrSrSrS r	S r
S	 rS
rg)Rule34usTagExtractor8   tag)z
{category}z{search_tags}zt_{search_tags}_{id}z=(?:https?://)?rule34\.us/index\.php\?r=posts/index&q=([^&#]*)z/https://rule34.us/index.php?r=posts/index&q=TAGc                     [         R                  X5        [        R                  " US   R	                  SS5      5      U l        g )Nr   +r'   )r   __init__r   r6   r/   r   r   matchs     r   rR   Rule34usTagExtractor.__init__?   s1    ""4/LLq!1!1#s!;<	r   c                     SU R                   0$ )Nsearch_tagsr   r   s    r   metadataRule34usTagExtractor.metadataC   s    tyy))r   c              #   b  #    U R                   S-   nSU R                  U R                  S.n U R                  XS9R                  nSn[        R
                  " USS5       H  nU R                  U5      v   US-  nM     X@R                  :  a  g S	U;   a  US		 U R                  S
-   W-   US'   M  7f)Nz
/index.phpzposts/index)rqr;   )paramsr   z><a id="r   r   r;   z id:<r]   )r)   r   
page_startr*   r   extract_iterrB   rI   )r   r:   r^   r;   cntr9   s         r   postsRule34usTagExtractor.postsF   s     ii,&!IIOO
 <<<388DC,,T:sC&&w//q D ]]"6N))g-7F3K s   B-B/rX   N)rD   rE   rF   rG   subcategorydirectory_fmtarchive_fmtpatternexamplerR   rY   rb   rJ   rK   r   r   rM   rM   8   s*    K3M(KNG?G=*8r   rM   c                   0    \ rS rSrSrSrSrSrS rS r	Sr
g	)
Rule34usPostExtractor^   r=   z{id}z:(?:https?://)?rule34\.us/index\.php\?r=posts/view&id=(\d+)z1https://rule34.us/index.php?r=posts/view&id=12345c                 B    [         R                  X5        US   U l        g )Nr   )r   rR   r9   rS   s     r   rR   Rule34usPostExtractor.__init__d   s    ""4/Qxr   c                 :    U R                  U R                  5      4$ )N)rB   r9   r   s    r   rb   Rule34usPostExtractor.postsh   s      .00r   )r9   N)rD   rE   rF   rG   rd   rf   rg   rh   rR   rb   rJ   rK   r   r   rj   rj   ^   s     KKKGAG 1r   rj   )	__doc__boorur    r   r2   r   rM   rj   rK   r   r   <module>rs      s;    ( !  % %P#8, #8L1- 1r   