
    i	                     j    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	g)z%Extractors for https://soundgasm.net/   )	ExtractorMessage   )textz0(?:https?://)?(?:www\.)?soundgasm\.net/u(?:ser)?c                   <    \ 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)SoundgasmExtractor   z#Base class for soundgasm extractors	soundgasmzhttps://soundgasm.net)g      ?g      ?)z
{category}z{user}z{title}.{extension}z{user}_{slug}c              #      #    [        U R                  U R                  5       5       HF  nUS   n[        R                  SU4v   [        R
                  U[        R                  " X!5      4v   MH     g 7f)Nurl )map_extract_soundsoundsr   	DirectoryUrlr   nameext_from_url)selfsoundr   s      K/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/soundgasm.pyitemsSoundgasmExtractor.items   sZ     ,,dkkm<E,C##R..++sD$9$9#$EEE =s   A0A2c                    [         R                  " U R                  U5      R                   5      nUR                  S5      R	                  SS5      u  p4nUU[         R
                  " U" SS5      5      [         R
                  " [         R                  " U" SS5      5      5      S.nU" SS	5      n[         R                  " US
S5      US'   U$ )N/r   zaria-label="title"><zclass="jp-description">z</div>)userslugtitledescriptionz"setMedia", {}z: ""r   )r   extract_fromrequestrstriprsplitunescaperemove_htmlextr)r   r   r(   _r   r   dataformatss           r   r   !SoundgasmExtractor._extract_sound    s      c!2!7!78

3..sA6]]4(=s#CD==)9)9$)8;5 *6 7	
 ,ii4U     N)__name__
__module____qualname____firstlineno____doc__categoryrootrequest_intervaldirectory_fmtfilename_fmtarchive_fmtr   r   __static_attributes__r.   r-   r   r   r      s/    -H"D!,M(L!KFr-   r   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
SoundgasmAudioExtractor2   z,Extractor for audio clips from soundgasm.netaudioz/([^/?#]+)/([^/?#]+)z"https://soundgasm.net/u/USER/TITLEc                 h    [         R                  X5        UR                  5       u  U l        U l        g )N)r   __init__groupsr   r   r   matchs     r   r@    SoundgasmAudioExtractor.__init__8   s$    ##D0$||~	49r-   c                 T    U R                    SU R                   SU R                   34$ )Nz/u/r   )r5   r   r   )r   s    r   r   SoundgasmAudioExtractor.sounds<   s(    99+S1TYYK8::r-   )r   r   Nr/   r0   r1   r2   r3   subcategoryBASE_PATTERNpatternexampler@   r   r:   r.   r-   r   r<   r<   2   s$    6K44G2G.;r-   r<   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
SoundgasmUserExtractor@   z.Extractor for all sounds from a soundgasm userr   z/([^/?#]+)/?$zhttps://soundgasm.net/u/USERc                 B    [         R                  X5        US   U l        g )Nr   )r   r@   r   rB   s     r   r@   SoundgasmUserExtractor.__init__F   s    ##D0!H	r-   c                     U R                  U R                  S-   U R                  -   5      R                  n[        R                  " USS5       Vs/ s H  n[        R
                  " USS5      PM     sn$ s  snf )Nz/user/zclass="sound-details">z</a>z	<a href="r!   )r#   r5   r   r   extract_iterr(   )r   pager   s      r   r   SoundgasmUserExtractor.soundsJ   ss    ||DII0499<=BB **.8
8 IIe[#.8
 	
 
s   "A5)r   NrG   r.   r-   r   rM   rM   @   s$    8K--G,G
r-   rM   N)
r3   commonr   r   r   r   rI   r   r<   rM   r.   r-   r   <module>rV      s<    , & B B;0 ;
/ 
r-   