
    i(                         S r SSKJr  SSKJr  SSKrSr " S S	\5      r " S
 S\5      r " S S\5      r	 " S S\5      r
g)z%Extractors for https://yiffverse.com/   )BooruExtractor   )text    Nz&(?:https?://)?(?:www\.)?yiffverse\.comc                   b    \ rS rSrSrSrSrSrSrSSSS	S
SSS.r	Sr
S rS rS rS rSS jrSrg)YiffverseExtractor   	yiffversezhttps://yiffverse.comzhttps://furry34com.b-cdn.netz{category}_{id}.{extension}   general	copyright	characterartistsystemmeta)Nr   r                ))100zmov.mp4)101z
mov720.mp4)102z
mov480.mp4)10zpic.jpgc           	      (   US   nU R                    H  u  p4X2;   d  M    O   [        [        U5      5      nUS   nX#   S   (       a  U R                  OU R                  nU SUS-   SU SU SW 3	=US'   nX1S	'   UR                  S5      S   US
'   U$ )Nfilesidr   z/posts/i  /.file_url	format_idformat)FORMATSnextiterroot_cdnroot	partition)selfpostr   fmt	extensionpost_idr&   urls           K/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/yiffverse.py	_file_urlYiffverseExtractor._file_url)   s    W"llNC| + tE{#Ct* %
1t}}499fGGtO,AgYay)M	NZ3[",,S1!4X
    c                     UR                  SS 5        U R                  US   5      US'   US   R                  S5      u  US'   o!S'   SU;   a  US    Vs/ s H  o3S   PM	     snUS'   g g s  snf )	Nr   createddatefilenamer   r!   tagsvalue)popparse_datetime_iso
rpartition)r(   r)   _ts       r.   _prepareYiffverseExtractor._prepare:   sx    $..tI?V.2:.>.I.I#.N+Z!(^T>04V=1gJ=DL =s   A*c                 0   SU;  a#  UR                  U R                  US   5      5        [        R                  " [        5      nUS    H  nX4S      R                  US   5        M     U R                  nUR                  5        H  u  pgXqSXV   -   '   M     g )Nr6   r   typer7   tags_)update_fetch_postcollectionsdefaultdictlistappend	TAG_TYPESitems)r(   r)   r;   r6   tagtypesr@   valuess           r.   _tagsYiffverseExtractor._tagsA   s    KK((d45&&t,<CV$$S\2   JJLLD*05;&' )r1   c                 F    U R                    SU 3nU R                  U5      $ )Nz/api/v2/post/)r&   request_json)r(   r,   r-   s      r.   rC   YiffverseExtractor._fetch_postL   s'    =	2  %%r1   Nc              #     #    U R                    SU 3nUc  0 nSUS'   SUS'   U R                  US'   U R                  n U R                  USUS9nUS	    S h  vN   [        US	   5      U:  a  g UR	                  S
5      US
'   MG   N-7f)Nz/apir   	sortOrderr   statustakePOST)methodjsonrI   cursor)r&   per_pagerP   lenget)r(   endpointparamsr-   	thresholddatas         r.   _paginationYiffverseExtractor._paginationP   s     4z*>F{xvMM	$$Sf$EDG}$$4=!I-#xx1F8  %s   ABB.B )N)__name__
__module____qualname____firstlineno__categoryr&   r%   filename_fmtrZ   rH   r"   r/   r=   rM   rC   ra   __static_attributes__rc   r1   r.   r   r      sY    H"D-H0LH IG">	1&2r1   r   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	YiffversePostExtractord   r)   z{id}z/post/(\d+)z https://yiffverse.com/post/12345c                 @    U R                  U R                  S   5      4$ )Nr   )rC   groupsr(   s    r.   postsYiffversePostExtractor.postsj   s      Q022r1   rc   N)rd   re   rf   rg   subcategoryarchive_fmtBASE_PATTERNpatternexamplerq   rj   rc   r1   r.   rl   rl   d   s     KK^+G0G3r1   rl   c                   :    \ rS rSrSrSrSr\S-   rSr	S r
S rS	rg
)YiffversePlaylistExtractorn   playlist)
{category}z{playlist_id}zp_{playlist_id}_{id}z/playlist/(\d+)z$https://yiffverse.com/playlist/12345c                 $    SU R                   S   0$ )Nplaylist_idr   )ro   rp   s    r.   metadata#YiffversePlaylistExtractor.metadatau   s    t{{1~..r1   c                 H    SU R                   S   -   nU R                  U5      $ )Nz/v2/post/search/playlist/r   )ro   ra   )r(   r]   s     r.   rq    YiffversePlaylistExtractor.postsx   s%    .Q?))r1   rc   N)rd   re   rf   rg   rs   directory_fmtrt   ru   rv   rw   r   rq   rj   rc   r1   r.   ry   ry   n   s+    K3M(K//G4G/*r1   ry   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)YiffverseTagExtractor}   rJ   )r|   z{search_tags}zt_{search_tags}_{id}z*/(?:tag/([^/?#]+))?(?:/?\?([^#]+))?(?:$|#)zhttps://yiffverse.com/tag/TAGc                 p   U R                   u  p[        R                  " U5      n/ =U l        nU(       a%  UR	                  [        R
                  " U5      5        SU;   a#  UR                  US   R                  S5      5        UR                  S5      nUS:X  a  SU l	        g US:X  a  SU l	        g S U l	        g )Nr6   |r@   videor   imager   )
ro   r   parse_queryr6   rG   unquoteextendsplitr\   r@   )r(   rJ   queryr^   r6   r@   s         r.   _initYiffverseTagExtractor._init   s    [[
!!%(	DKKS)*VKKv,,S12zz&!7?DIW_DIDIr1   c                 <    SSR                  U R                  5      0$ )Nsearch_tags )joinr6   rp   s    r.   r   YiffverseTagExtractor.metadata   s    sxx		233r1   c                     SnSU R                    Vs/ s H  o"R                  SS5      PM     sn0nU R                  b  U R                  US'   U R                  X5      $ s  snf )Nz/v2/post/search/rootincludeTagsr;   r   r@   )r6   replacer@   ra   )r(   r]   r<   r^   s       r.   rq   YiffverseTagExtractor.posts   s[    )tyy!Iy!))C"5y!IJ99 !YYF6N11 "Js   A)r6   r@   N)rd   re   rf   rg   rs   r   rt   ru   rv   rw   r   r   rq   rj   rc   r1   r.   r   r   }   s0    K3M(KJJG-G$42r1   r   )__doc__boorur    r   rD   ru   r   rl   ry   r   rc   r1   r.   <module>r      sN    , !  8O2 O2d3/ 3*!3 *!2. !2r1   