
    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
g)zExtractors for https://whyp.it/   )	ExtractorMessage   )textz (?:https?://)?(?:www\.)?whyp\.itc                   <    \ 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)WhypExtractor   zBase class for whyp extractorswhypzhttps://whyp.itzhttps://api.whyp.it)z
{category}z{user[username]} ({user[id]})z{id} {title}.{extension}z{id}c                 N    SU R                   U R                   S-   SSSS.U l        g )Nzapplication/json/emptycorsz	same-site)AcceptOriginRefererzSec-Fetch-DestzSec-Fetch-ModezSec-Fetch-Site)rootheaders_api)selfs    F/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/whyp.py_initWhypExtractor._init   s*    )yyyy3%$)
    c              #   @  #    U R                  5        H  nUR                  S5      =n(       a  SUS'   O
US   nSUS'   SU;   a  U R                  US   5      US'   [        R                  SU4v   [        R
                  U[        R                  " X!5      4v   M     g 7f)	Nlossless_urlToriginal	lossy_urlF
created_atdate )tracksgetparse_datetime_isor   	DirectoryUrlr   nameext_from_url)r   trackurls      r   itemsWhypExtractor.items$   s     [[]Eii//s/$(j!K($)j!u$ $ 7 7l8K Lf##R..++sD$9$9#$EEE #s   BB)r   N)__name__
__module____qualname____firstlineno____doc__categoryr   root_apidirectory_fmtfilename_fmtarchive_fmtr   r(   __static_attributes__ r   r   r   r      s.    (HD$HCM-LK
Fr   r   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)WhypAudioExtractor3   audioz*/tracks/(\d+)(?:/[^/?#]+)?/?(?:\?([^#]+))?z!https://whyp.it/tracks/12345/SLUGc                     U R                   u  pU R                   SU 3nUc  S O[        R                  " U5      nU R	                  X4U R
                  S9nUS   4$ )Nz/api/tracks/paramsheadersr&   )groupsr0   r   parse_queryrequest_jsonr   )r   tidqsr'   r<   datas         r   r    WhypAudioExtractor.tracks8   s_    ++|C51)9)9")=  T=M=M NWr   r5   N
r*   r+   r,   r-   subcategoryBASE_PATTERNpatternexampler    r4   r5   r   r   r7   r7   3   s    KJJG1G r   r7   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)WhypUserExtractor@   userz)/users/(\d+)(?:/[^/?#]+)?/?(?:\?([^#]+))?zhttps://whyp.it/users/123/NAMEc              #     #    U R                   u  pU R                   SU S3n[        R                  " U5      nU R                  n U R                  X4US9nUS    S h  vN   UR                  S5      =n(       d  g XtS'   M<   N#7f)Nz/api/users//tracksr;   r    next_cursorcursor)r>   r0   r   r?   r   r@   r!   )r   uidrB   r'   r<   r=   rC   rQ   s           r   r    WhypUserExtractor.tracksE   s     ++{3%w7!!"%""$$S$IDH~%%"hh}55F5%8  &s   ABB$Br5   NrE   r5   r   r   rK   rK   @   s    KIIG.G&r   rK   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)WhypCollectionExtractorV   
collectionz//collections/(\d+)(?:/[^/?#]+)?/?(?:\?([^#]+))?z$https://whyp.it/collections/123/NAMEc                 .   U R                   u  pU R                   SU 3nUc  S O[        R                  " U5      nU R                  nU R                  X4US9S   =U R                  S'   nU R                   SU S3nSUS   0nU R                  X4US9nUS   $ )Nz/api/collections/r;   rW   rO   tokenr    )r>   r0   r   r?   r   r@   kwdict)r   cidrB   r'   r<   r=   rW   rC   s           r   r    WhypCollectionExtractor.tracks[   s    ++06)9)9")=""151B1B 2C 211=2? 	?L!J 0W=:g./  W EH~r   r5   NrE   r5   r   r   rU   rU   V   s    KOOG4Gr   rU   N)r.   commonr   r   r   r   rG   r   r7   rK   rU   r5   r   r   <module>r^      sH    & & 2FI FD
  
 & &,m r   