
    i1                         S 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
 " S S\5      r " S S\5      r " S S\5      rg)z)Extractors for https://fitnakedgirls.com/   )GalleryExtractor	ExtractorMessage   )textz*(?:https?://)?(?:www\.)?fitnakedgirls\.comc                   6    \ rS rSrSrSrSrS rS rS
S jr	Sr
g	)FitnakedgirlsExtractor   z'Base class for fitnakedgirls extractorsfitnakedgirlszhttps://fitnakedgirls.comc              #   r   #    S[         0nU R                  5        H  n[        R                  X!4v   M     g 7f)N
_extractor)FitnakedgirlsGalleryExtractor	galleriesr   Queue)selfdataurls      O/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/fitnakedgirls.pyitemsFitnakedgirlsExtractor.items   s0     ;<>>#C--** $s   57c              #      #    UnSn U R                  U5      R                  n[        R                  " USS5       H  n[        R                  " USS5      v   M     US-  nU SU S3nSU S3U;  a  g Mn  7f)Nr   zclass="entry-bodyz</a>zhref=""zpage//)requestr   extract_iterextr)r   baser   pnumpageposts         r   _pagination"FitnakedgirlsExtractor._pagination   s     <<$))D))-v7iih447 AIDF%vQ'CuAd* s   A4A6c                     [         R                  " U" SS5      5      nX#;   a  UR                  U5      S   nUR                  5       $ )Nz<title><    )r   unescape
rpartitionstrip)r   r   septitles       r   _extract_title%FitnakedgirlsExtractor._extract_title)   s=    d9c23<$$S)!,E{{}     N)z - )__name__
__module____qualname____firstlineno____doc__categoryrootr   r!   r+   __static_attributes__r.   r-   r   r	   r	      s    1H&D+
 r-   r	   c                   D    \ 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g)r   0   z%Extractor for fitnakedgirls galleriesz
{category}z{title}{filename}.{extension}z{gallery_id}_{filename}z/photos/gallery/([\w-]+)/?$z4https://fitnakedgirls.com/photos/gallery/MODEL-nude/c                 \    U R                    SUS    S3n[        R                  " XU5        g )Nz/photos/gallery/r   r   )r5   r   __init__)r   matchr   s      r   r<   &FitnakedgirlsGalleryExtractor.__init__8   s-    +E!H:Q7!!$s3r-   c           
      $   [         R                  " U5      nU R                  U5      nS H  nXC;   d  M
  UR                  U5      S   n  O   [         R                  " U" SS5      5      U R
                  S   UUU R                  U" SS5      5      S.$ )N)z Nudesz Nudez nudesz nuder%   data-post-id="r   !article:published_time" content=")
gallery_idgallery_slugmodelr*   date)r   extract_fromr+   	partition	parse_intgroupsparse_datetime_iso)r   r   r   r*   patterns        r   metadata&FitnakedgirlsGalleryExtractor.metadata<   s      &##D) >G03 > !NN40@#+FG KKN,,T3S.: ;
 	
r-   c                    / n[         R                  " USS5      =(       d    Un[         R                  " USS5       H?  n[         R                  " USS5      =n(       d  M$  SU;   d  M,  UR                  US 45        MA     [         R                  " USS5       H?  n[         R                  " US	S5      =n(       d  M$  SU;   d  M,  UR                  US 45        MA     U(       dc  [         R                  " US
S5       HG  nSU;   d  M  [         R                  " US	S5      =n(       d  M,  SU;   d  M4  UR                  US 45        MI     U$ )Nitemprop="articleBody"<!-- .entry-content -->z<figure class="wp-block-video">	</figure>src="r   /wp-content/uploads/<figure class="wp-block-imagez
data-src="z<img >z
size-large)r   r   r   append)r   r   resultscontentfiguresrcimgs          r   images$FitnakedgirlsGalleryExtractor.imagesO   s+   ))*,EG OJN 	 '':KIFii55s5)S0NNC;/	I ''8+GFiic::s:)S0NNC;/	G (('3?3&"ii\3??s?1S8#NNC;7	 @ r-   r.   N)r/   r0   r1   r2   r3   directory_fmtfilename_fmtarchive_fmtBASE_PATTERNrK   exampler<   rL   r\   r6   r.   r-   r   r   r   0   s3    /-M+L+K;;GDG4
&r-   r   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	FitnakedgirlsCategoryExtractorn   z*Extractor for fitnakedgirls category pagesr4   z!/photos/gallery/category/([\w-]+)z;https://fitnakedgirls.com/photos/gallery/category/CATEGORY/c                 b    U R                    SU R                  S    S3nU R                  U5      $ )Nz/photos/gallery/category/r%   r   r5   rI   r!   r   r   s     r   r   (FitnakedgirlsCategoryExtractor.galleriest   s3    ))5dkk!n5EQG%%r-   r.   Nr/   r0   r1   r2   r3   subcategoryra   rK   rb   r   r6   r.   r-   r   rd   rd   n   s    4KAAGKG&r-   rd   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	FitnakedgirlsTagExtractory   z%Extractor for fitnakedgirls tag pagestagz/photos/gallery/tag/([\w-]+)z1https://fitnakedgirls.com/photos/gallery/tag/TAG/c                 b    U R                    SU R                  S    S3nU R                  U5      $ )Nz/photos/gallery/tag/r%   r   rg   rh   s     r   r   #FitnakedgirlsTagExtractor.galleries   s3    ))0Q0@B%%r-   r.   Nrj   r.   r-   r   rm   rm   y   s    /K<<GAG&r-   rm   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)FitnakedgirlsVideoExtractor   z'Extractor for fitnakedgirls video postsvideor9   r:   z{video_id}_{filename}z/videos/(\d+)/(\d+)/([\w-]+)z5https://fitnakedgirls.com/videos/2025/08/VIDEO-TITLE/c           	   #     #    U R                   u  pnU R                   SU SU SU S3nU R                  U5      R                  n[        R                  " U5      nUU R                  US5      [        R                  " U" SS5      5      U R                  U" SS5      5      S.n[        R                  SU4v   [        R                  " US	S
5      =(       d    Un[        R                  " USS5       HU  n	[        R                  " U	SS5      =n
(       d  M$  SU
;   d  M,  [        R                  U
[        R                  " X5      4v   MW     g 7f)Nz/videos/r   z | r@   r   rA   )slugr*   video_idrE    rO   rP   z<video z</video>rR   rS   )rI   r5   r   r   rF   r+   rH   rJ   r   	Directoryr   r   Urlnameext_from_url)r   yearmonthrw   r   r   r   r   rX   ru   rZ   s              r   r   !FitnakedgirlsVideoExtractor.items   s0     KKT8D65'4&:||C %%  &++D%8t,<c'BC//8#>@	
 T))))*,EG OJN 	&&w	:FEiiw44s4)S0!++sD,A,A#,LLL Gs   DEE.Er.   Nr/   r0   r1   r2   r3   rk   r^   r_   r`   ra   rK   rb   r   r6   r.   r-   r   rs   rs      s/    1K-M+L)K<<GEGMr-   rs   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)FitnakedgirlsBlogExtractor   z&Extractor for fitnakedgirls blog postsblogr9   r:   z{post_id}_{filename}z/fitblog/([\w-]+)z-https://fitnakedgirls.com/fitblog/MODEL-NAME/c           	   #     #    U R                   S   nU R                   SU S3nU R                  U5      R                  n[        R                  " U5      nUU R                  U5      [        R                  " U" SS5      5      U R                  U" SS5      5      S.n[        R                  SU4v   [        R                  " US	S
5      =(       d    Un[        R                  " USS5       H  n[        R                  " USS5      =n(       a`  UR                  S5      n	U	(       aH  U	S   R                  S5      S   n
SU
;   a+  [        R                  U
[        R                  " X5      4v   M  [        R                  " USS5      =n
(       d  M  SU
;   d  M  [        R                  U
[        R                  " X5      4v   M     g 7f)Nr%   z	/fitblog/r   r@   r   rA   )rw   r*   post_idrE   ry   rO   rP   rT   rQ   zsrcset="z,  rS   rR   )rI   r5   r   r   rF   r+   rH   rJ   r   rz   r   r   splitrG   r{   r|   )r   rw   r   r   r   r   rX   rY   srcseturlsrZ   s              r   r    FitnakedgirlsBlogExtractor.items   s    {{1~9TF!,||C %%  &**40~~d+;S&AB..8#>@	
 T)) ))*,EG OJN 	''8+GF 6:s;;v;||D)r(,,S1!4C-4%kk30E0E1' ' ' ii55s5)S0!++sD,A,A#,LLLGs   FGG.Gr.   Nr   r.   r-   r   r   r      s/    0K-M+L(K11G=G"Mr-   r   N)r3   commonr   r   r   ry   r   ra   r	   r   rd   rm   rs   r   r.   r-   r   <module>r      so    0 8 8 <Y B;$46L ;|&%; && 6 &M"8 MB+M!7 +Mr-   