
    i                     n    S r SSKJrJr  SSKJrJr  Sr " S S\5      r " S S	\5      r	 " S
 S\5      r
g)z!Extractors for https://toyhou.se/   )	ExtractorMessage   )textutilz"(?:https?://)?(?:www\.)?toyhou\.sec                   \    \ 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SS jrS rS rSrg)ToyhouseExtractor   z"Base class for toyhouse extractorstoyhousezhttps://toyhou.se)z
{category}z{user|artists!S}z{id}c                 R    [         R                  " X5        US   U l        SU l        g )Nr       )r   __init__useroffset)selfmatchs     J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/toyhouse.pyr   ToyhouseExtractor.__init__   s"    4'!H	    c              #     #    U R                  5       n[        R                  " U R                  5       U R                  5       H  nU(       a  UR                  U5        [        R                  " US   U5        US   R                  S5      u  US'   o2S'   [        R                  SU4v   [        R                  US   U4v   M     g 7f)Nurlfilename_idhash )metadatar   advancepostsr   updater   nameext_from_url	partitionr   	DirectoryUrl)r   r   postr   s       r   itemsToyhouseExtractor.items   s     ==?LLt{{;DH%!!$u+t4*.z*:*D*DS*I'DJ<##R--++tE{D00 <s   CCc                     g)N r)   r   s    r   r   ToyhouseExtractor.posts(   s    r   c                     g Nr)   r*   s    r   r   ToyhouseExtractor.metadata+   s    r   c                 0    U =R                   U-  sl         U$ r-   )r   )r   nums     r   skipToyhouseExtractor.skip.   s    s
r   c           	      4   [         R                  " U5      nU" US5      U R                  U" SS5      S5      U" SS5      R                  S5       Vs/ s H  n[         R                  " U5      PM     sn[         R
                  " U" SS	5      5      S
S  S.$ s  snf )N"z$</h2>
            <div class="mb-1"><z%d %b %Y, %I:%M:%S %pz<div class="artist-credit">z!</div>
                    </div>z<div class="ar tist-credit">z<div class="image-charactersz<div class="image-comments">r   )r   dateartists
characters)r   extract_fromparse_datetimesplitremove_html
split_html)r   r%   needleextrartists        r   _parse_postToyhouseExtractor._parse_post2   s      &$''7)>')
 #18::?%2;444F   (4 //$..+0 1125
 	

s    Bc              #   T  #    U R                   U-   nSS0n U R                  X#S9R                  nSn[        R                  " USS5       H  nUS-  nU R	                  U5      v   M     U(       d"  US   S:X  a  U R                  U5      (       a  M{  g US:  a  g US==   S-  ss'   M  7f)Npager   )paramsr   z<li class="gallery-item">z</li>   )rootrequestr   extract_iterrA   _accept_content_warning)r   pathr   rE   rD   cntr%   s          r   _paginationToyhouseExtractor._paginationE   s     ii$!<<<388DC))5w@q&&t,,@
 6&>Q.//55Rx6NaN! s   B&B(c                     UR                  S5      S-   n[        R                  " USSU5      u  p2[        R                  " USSU5      u  pBU(       a  U(       d  gX4S.nU R                  U R                  S-   SUSS	9  g
)Nz name="_token"r   z value="r4   F)_tokenr   z/~account/warnings/acceptPOST)methoddataallow_redirectsT)findr   extractrH   rG   )r   rD   postokenr   rS   s         r   rJ   )ToyhouseExtractor._accept_content_warning[   sz    ii()A-\\$
C=
\\$
C=
D.TYY!<<"u 	 	Fr   )r   r   N)z	<a href=")__name__
__module____qualname____firstlineno____doc__categoryrG   directory_fmtarchive_fmtr   r&   r   r   r1   rA   rM   rJ   __static_attributes__r)   r   r   r	   r	      sA    ,HD6MK
	1
& ,
r   r	   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
ToyhouseArtExtractorh   z)Extractor for artworks of a toyhouse userartz/([^/?#]+)/artzhttps://www.toyhou.se/USER/artc                 @    U R                  SU R                   S35      $ )N/z/art)rM   r   r*   s    r   r   ToyhouseArtExtractor.postsn   s     !DII;d 344r   c                     SU R                   0$ )Nr   )r   r*   s    r   r   ToyhouseArtExtractor.metadataq   s    		""r   r)   N)rZ   r[   r\   r]   r^   subcategoryBASE_PATTERNpatternexampler   r   rb   r)   r   r   rd   rd   h   s$    3K..G.G5#r   rd   c                   *    \ rS rSrSrSrSrSrS rSr	g)	ToyhouseImageExtractoru   z(Extractor for individual toyhouse imagesimagezg(?:https?://)?(?:(?:www\.)?toyhou\.se/~images|f\d+\.toyhou\.se/file/[^/?#]+/(?:image|watermark)s)/(\d+)zhttps://toyhou.se/~images/12345c                     U R                    SU R                   3nU R                  U R                  U5      R                  S5      4$ )Nz	/~images/z<img class="mw-100" src=")rG   r   rA   rH   r   )r   r   s     r   r   ToyhouseImageExtractor.posts~   sJ    9TYYK0  LL""$?A C 	Cr   r)   N)
rZ   r[   r\   r]   r^   rl   rn   ro   r   rb   r)   r   r   rq   rq   u   s    2KG 0GCr   rq   N)r^   commonr   r   r   r   r   rm   r	   rd   rq   r)   r   r   <module>rw      s@    ( & 4T	 Tn
#, 
#C. Cr   