
    iR                     6    S r SSKJr  SSKJr   " S S\5      rg)z%Extractors for https://nsfwalbum.com/   )GalleryExtractor   )textc                   ^    \ 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 rS rS rS rSS jrSrg)NsfwalbumAlbumExtractor   z+Extractor for image albums on nsfwalbum.com	nsfwalbumalbumzhttps://nsfwalbum.comz%{album_id}_{num:>03}_{id}.{extension})z
{category}z{album_id} {title}z{id}Fz4(?:https?://)?(?:www\.)?nsfwalbum\.com(/album/(\d+))z!https://nsfwalbum.com/album/12345c                 D    US   U l         [        R                  " X5        g )Nr   )album_idr   __init__)selfmatchs     K/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/nsfwalbum.pyr    NsfwalbumAlbumExtractor.__init__   s    a!!$.    c           	         [         R                  " U5      n[         R                  " U R                  5      [         R                  " U" SS5      5      [         R
                  " U" SS5      5      [         R                  " U" SS5      5      S.$ )Nz<h6>z</h6>z"models"> Models:z</div>z"models"> Studio:)r   titlemodelsstudio)r   extract_from	parse_intr   unescape
split_htmlremove_html)r   pageextrs      r   metadata NsfwalbumAlbumExtractor.metadata   si      &t}}5d67&;<-@((KL((.A8)LM	
 	
r   c              #     #    U R                   S-   nU R                   S-   nU R                  n[        R                  " USS5       H  nS nSnXt::  ab   U(       dI  U R	                  [        R
                  " U R                  X%-   5      R                  SS5      S   5      nXeS.nU R                  UWS9n	OU R                  R                  S
U5        M  U	S   [        R                  " U5      [        R                  " U	S	   5      [        R                  " U	S   5      U R                  U R                    SU SU 34S.4v   M     g ! [         a    US	-  n Of = fXt::  a  GM  N7f)Nz/iframe_image.php?id=z/backend.phpzdata-img-id=""    zgiraffe.annihilate(")spiritphoto)paramsr   zUnable to fetch image %sr   z/imageProxy.php?photoId=z&spirit=)idwidthheight_http_validate	_fallback)root_retriesr   extract_iter_annihilateextractrequestrequest_json	Exceptionlogwarningr   _validate_response)
r   r   iframebackendretriesimage_idr#   triesr%   datas
             r   imagesNsfwalbumAlbumExtractor.images(   sh    44))n,--))$EHFE"	!!%!1!1$,, LL):;@@2C399:3< "= -3!F,,WV,DD   !;XFq'..2..a1..a1"&"9"9!% ,**28F8E G  ' F ! QJE "s,   AE"A E2BE"EE"EE"c                 B    UR                   R                  S5      (       + $ )N)z/no_image.jpgz/placeholder.pngz
/error.jpg)urlendswith)r   responses     r   r5   *NsfwalbumAlbumExtractor._validate_responseI   s$    <<((?A A 	Ar   c                 :   ^ SR                  U4S jU 5       5      $ )N c              3   R   >#    U  H  n[        [        U5      T-  5      v   M     g 7f)N)chrord).0charbases     r   	<genexpr>6NsfwalbumAlbumExtractor._annihilate.<locals>.<genexpr>N   s)      
 D	D !!s   $')join)r   valuerJ   s     `r   r.   #NsfwalbumAlbumExtractor._annihilateM   s!    ww 

 
 	
r   )r   N)   )__name__
__module____qualname____firstlineno____doc__categorysubcategoryr+   filename_fmtdirectory_fmtarchive_fmtrefererpatternexampler   r   r<   r5   r.   __static_attributes__ r   r   r   r      sM    5HK"D:L8MKGEG1G/
BA
r   r   N)rU   commonr   rD   r   r   r_   r   r   <module>ra      s    , $ B
. B
r   