
    iX                         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://s3nd.pics/   )	ExtractorMessage   )textz"(?:https?://)?(?:www\.)?s3nd\.picsc                   B    \ 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)S3ndpicsExtractor   z"Base class for s3ndpics extractorss3ndpicszhttps://s3nd.picsz/api)z
{category}z{user[username]}z{date} {title:?/ /}({id})z{num:>02}.{extension}z
{id}_{num}c              #     #    SnU R                  5        H  nUR                  SS 5      US'   UR                  SS 5      US'   U R                  US   5      US'   U R                  US   5      US	'   UR                  S
S5      n[        U5      US'   [        R
                  SU4v   [        US5       HC  u  US'   nUS   US'   US   n[        R                  " XR5        [        R                  X-   U4v   ME     M     g 7f)Nzhttps://s3.s3nd.pics/s3nd-pics/_ididuserIduser	createdAtdate	updatedAtdate_updatedfiles count r   numtypeurl)
postspopparse_datetime_isolenr   	Directory	enumerater   nameext_from_urlUrl)selfbasepostr   filepaths         J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/s3ndpics.pyitemsS3ndpicsExtractor.items   s     0JJLD%.DJ88Hd3DL2243DEDL#'#:#:4;L#MD HHWb)EJDM##R--%.ua%8!UT#F|VE{%%d1kk4;44	 &9 !s   C;C=c              #      #    SUS'    U R                  XS9nUS   S   U R                  S'   US    S h  vN   US   US   S   :  a  g US==   S-  ss'   MP   N#7f)Nr   page)params
paginationtotalr   pages)request_jsonkwdict)r#   r   r-   datas       r(   _paginationS3ndpicsExtractor._pagination.   sz     v$$S$8D#'#5g#>DKK G}$$f~l!3G!<<6NaN  %s   3AA$Ar   N)__name__
__module____qualname____firstlineno____doc__categoryrootroot_apidirectory_fmtfilename_fmtarchive_fmtr)   r4   __static_attributes__r       r(   r   r      s3    ,HDf}H2M*LK5& rB   r   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)S3ndpicsPostExtractor<   r%   z/post/([0-9a-f]+)z/https://s3nd.pics/post/0123456789abcdef01234567c                 h    U R                    SU R                  S    3nU R                  U5      S   4$ )Nz/posts/    r%   )r=   groupsr1   )r#   r   s     r(   r   S3ndpicsPostExtractor.postsA   s8    wt{{1~&67!!#&v.00rB   r   N
r6   r7   r8   r9   subcategoryBASE_PATTERNpatternexampler   rA   r   rB   r(   rD   rD   <   s    K11G?G1rB   rD   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)S3ndpicsUserExtractorF   r   z/user/(\w+)zhttps://s3nd.pics/user/USERc                     U R                    SU R                  S    3nU R                  U5      S   =U R                  S'   nU R                   S-   nUS   SSS.nU R	                  X5      $ )	Nz/users/username/rG   r   /postsr   12newest)r   limitsortBy)r=   rH   r1   r2   r4   )r#   r   r   r-   s       r(   r   S3ndpicsUserExtractor.postsK   sx    /A/?@%)%6%6s%;F%CCFdmmh&5k

 ,,rB   r   NrJ   r   rB   r(   rP   rP   F   s    K^+G+G
-rB   rP   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)S3ndpicsSearchExtractorX   searchz/search/?\?([^#]+)zhttps://s3nd.pics/search?QUERYc                 H   U R                   S-   n[        R                  " U R                  S   5      nUR	                  SS5        UR                  S5      =(       d)    UR                  S5      =(       d    UR                  S5      U R                  S'   U R                  X5      $ )	NrS   rG   rV   20tagtagsqsearch_tags)r=   r   parse_queryrH   
setdefaultgetr2   r4   )r#   r   r-   s      r(   r   S3ndpicsSearchExtractor.posts]   s~    mmh&!!$++a.1'4(JJuFF!3Fvzz# 	M",,rB   r   NrJ   r   rB   r(   rZ   rZ   X   s    K22G.G-rB   rZ   N)r:   commonr   r   r   r   rL   r   rD   rP   rZ   r   rB   r(   <module>rh      sI    ( & 4( 	 ( V1- 1-- -$-/ -rB   