
    i<                         S r SSK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g)z&Extractors for https://leakgallery.com   )	ExtractorMessage   )textz((?:https?://)?(?:www\.)?leakgallery\.comc                   8    \ rS rSrSrSrSrSrS
S jrSS jr	S	r
g)LeakgalleryExtractor   leakgallery)z
{category}z	{creator}z{id}_{filename}.{extension}z{creator}_{id}Nc              #   b  #    [        5       nU H  nUS   nXS;   a  M  UR                  U5        Uc   US   S   =(       d    SUS'   OX$S'   SU-   =US'   n[        R                  " Xd5        [
        R                  SU4v   [
        R                  Xd4v   M     g ! [         a    SUS'    N_f = f7f)	N	file_pathprofileusernameunknowncreatorzhttps://cdn.leakgallery.com/url )setadd	Exceptionr   nameext_from_urlr   	DirectoryUrl)selfmediasr   seenmediapathr   s          M/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/leakgallery.py_yield_media_items'LeakgalleryExtractor._yield_media_items   s     uE%D|HHTN1i(4A	 )$
 $+i !?$!FFE%L3!!#-##R..++s))%  ! 1'0E)$1s)   0B/BAB/B,)B/+B,,B/c              #   R  #      U R                  U[        U5      -   US9nU(       d  g SU;   a"  US   nU(       a  [        U[        5      (       d  g U R	                  Xd5       S h  vN   US-  nMm   N! [
         a'  nU R                  R                  SXU5         S nAg S nAff = f7f)N)paramsr   r   z!Failed to retrieve %s page %s: %s)request_jsonstr
isinstancelistr   r   logerror)r   typebaser"   r   pnumdataexcs           r   _pagination LeakgalleryExtractor._pagination+   s     ((D	)9&(It#>Dz$'='=224AAA	  B B#30sV   B'#A3 B''A3 B'A3 %A1&	A3 /B'1A3 3
B$=BB'B$$B' )N)NNr   )__name__
__module____qualname____firstlineno__categorydirectory_fmtfilename_fmtarchive_fmtr   r.   __static_attributes__r0       r   r   r      s     H/M0L"K*,r:   r   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	LeakgalleryUserExtractor?   z.Extractor for profile posts on leakgallery.comuserzy/(?!trending-medias|most-liked|random/medias)([^/?#]+)(?:/(Photos|Videos|All))?(?:/(MostRecent|MostViewed|MostLiked))?/?$zhttps://leakgallery.com/creatorc                 ~    U R                   u  pnSU S3nU=(       d    SU=(       d    SS.nU R                  XXQ5      $ )Nz$https://api.leakgallery.com/profile//All
MostRecent)r)   sortgroupsr.   )r   r   mtypemsortr*   r"   s         r   itemsLeakgalleryUserExtractor.itemsJ   sD     $5gYa@.5%2G<Hv??r:   r0   Nr1   r2   r3   r4   __doc__subcategoryBASE_PATTERNpatternexamplerH   r9   r0   r:   r   r<   r<   ?   s)    8K	6	6  0G@r:   r<   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	LeakgalleryTrendingExtractorQ   z/Extractor for trending posts on leakgallery.comtrendingz/trending-medias(?:/([\w-]+))?z,https://leakgallery.com/trending-medias/Weekc                 b    U R                   S   =(       d    SnSU S3nU R                  SU5      $ )N    z	Last-Hourz*https://api.leakgallery.com/popular/media/r@   rS   rD   )r   periodr*   s      r   rH   "LeakgalleryTrendingExtractor.itemsW   s5    Q.;;F81E
D11r:   r0   NrJ   r0   r:   r   rQ   rQ   Q   s    9K>>G<G2r:   rQ   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	LeakgalleryMostlikedExtractor]   z1Extractor for most liked posts on leakgallery.com	mostlikedz/most-likedz"https://leakgallery.com/most-likedc                 *    SnU R                  SU5      $ )Nz'https://api.leakgallery.com/most-liked/z
most-liked)r.   )r   r*   s     r   rH   #LeakgalleryMostlikedExtractor.itemsc   s    8d33r:   r0   NrJ   r0   r:   r   rY   rY   ]   s    ;K^+G2G4r:   rY   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	LeakgalleryPostExtractorh   z1Extractor for individual posts on leakgallery.compostz/([^/?#]+)/(\d+)z%https://leakgallery.com/CREATOR/12345c              #   P  #    U R                   u  pSU SU 3n U R                  U5      R                  n[        R                  " S5      R	                  U5      n[        R                  " S5      R	                  U5      n[        5       nXV-    H`  nX7;   a  M
  UR                  U5        UUUS.n[        R                  " X85        [        R                  SU4v   [        R                  X84v   Mb     g ! [         a'  n	U R                  R                  SXU	5         S n	A	g S n	A	ff = f7f)Nzhttps://leakgallery.com/r@   zchttps://cdn\.leakgallery\.com/content[^/?#]*/(?:compressed_)?watermark_[^\"]+\.(?:mp4|mov|m4a|webm)zLhttps://cdn\.leakgallery\.com/content[^/?#]*/watermark_[^\"]+\.(?:jpe?g|png))idr   r   r   z%Failed to extract post page %s/%s: %s)rE   requestr   refindallr   r   r   r   r   r   r   r'   r(   )
r   r   post_idr   page
video_urls
image_urlsr   r,   r-   s
             r   rH   LeakgalleryPostExtractor.itemsn   s    ;;(	7)<	2<<$))D( gdm	 
 3 gdm 
 5D!.;!&
 %%c0''T11kk3,, /  	2HHNNB"S2 2	2s/   D&CC2 1D&2
D#<DD&D##D&r0   NrJ   r0   r:   r   r_   r_   h   s    ;K00G5G2r:   r_   N)rK   commonr   r   r   r   rM   r   r<   rQ   rY   r_   r0   r:   r   <module>rm      sX    - & :-9 -`@3 @$	2#7 	24$8 4%23 %2r:   