
    i                     t    S r SSKJrJr  SSKJr  Sr\S-   r " S S\5      r " S	 S
\5      r	 " S S\5      r
g)z$Extractors for https://nekohouse.su/   )	ExtractorMessage   )textz(?:https?://)?nekohouse\.suz/([^/?#]+)/user/([^/?#]+)c                        \ rS rSrSrSrSrSrg)NekohouseExtractor   z#Base class for nekohouse extractors	nekohousezhttps://nekohouse.su N)__name__
__module____qualname____firstlineno____doc__categoryroot__static_attributes__r       K/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/nekohouse.pyr   r      s    -H!Dr   r   c                   D    \ 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)NekohousePostExtractor   post)z
{category}z	{service}z{username} ({user_id})z{post_id} {date} {title[b:230]}z#{num:>02} {id|filename}.{extension}z${service}_{user_id}_{post_id}_{hash}z/post/([^/?#]+)z2https://nekohouse.su/SERVICE/user/12345/post/12345c              #   J  #    U R                   u  pnU R                   SU SU SU 3nU R                  U5      R                  nU R	                  U5      nU R                  U5      nXS'   X'S'   X7S'   [        U5      US'   [        R                  SU4v   [        US	5       H}  u  US
'   nUS   n[        R                  " XH5        US   US'   UR                  U5        SU;   a&  [        R                  " UR                  S5      U5        [        R                  XH4v   M     g 7f)N//user/z/post/serviceuser_idpost_idcount r   numurlfilenamehashname)groupsr   requestr   _extract_files_extract_postlenr   	Directory	enumeratenameext_from_urlupdatepopUrl)	selfr   r   r   r#   htmlfilesr   files	            r   itemsNekohousePostExtractor.items!   s    $(KK!'1WIVG9F7)D||C %%##D)!!$'!Y!Y!YE
WT))!*5!!4DKu+C!!#,
+DLKK~%%dhhv&6=++s(( "5s   D!D#c           	         [         R                  " U5      n[         R                  " U" SS5      R                  S5      S   R	                  5       5      [         R                  " U" SS5      R                  S5      S   5      U R                  U" SS5      S S 5      [         R                  " U" S	S
5      R	                  5       5      S.$ )Nzclass="scrape__user-namez</>r   zclass="scrape__titlez
datetime=""   zclass="scrape__content">z</div>)usernametitledatecontent)r   extract_fromunescape
rpartitionstripparse_datetime_iso)r2   r3   extrs      r   r*   $NekohousePostExtractor._extract_post7   s      &d*D'22<*S/!'EEJUWNd&'..8joa'A B..tc0##&B0( )}}T*H&66;eg?	
 		
r   c           
         / n[         R                  " [         R                  " USS5      5      n U" SS5      nU(       d  O+UR                  UU R                  U" SS5      -   SS.5        M<  [         R                  " [         R                  " USS	5      5      n U" SS5      nU(       d   U$ UR                  S
U R                  U-   [         R
                  " U" SS5      5      SS.5        MS  )Nzclass="scrape__files"z<footerz<a href="/post/r:   zhref="r5   )idr#   typezclass="scrape__attachments"z</ul>r!   z
download="
attachment)rH   r#   r&   rI   )r   r@   rE   appendr   rA   )r2   r3   r4   rE   file_idr#   s         r   r)   %NekohousePostExtractor._extract_filesD   s      )9"6 7,c2GLL		D3$77 	    /": ;x%C  LL		Cd<&=>$	 	 r   r   N)r   r   r   r   subcategorydirectory_fmtfilename_fmtarchive_fmtUSER_PATTERNpatternexampler6   r*   r)   r   r   r   r   r   r      s7    K8M8L8K//GBG),
r   r   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)NekohouseUserExtractorc   userz/?(?:\?([^#]+))?(?:$|\?|#)z'https://nekohouse.su/SERVICE/user/12345c              #     #    U R                   u  pnU R                   SU SU 3nSS0nS[        0n U R                  XES9R                  nSn[        R
                  " USS5       HA  n	US	-  nU R                  [        R                  " U	S
S5      -   n
[        R                  X4v   MC     US:  a  g US==   S-  ss'   M  7f)Nr   r   o    
_extractor)paramsz<articlez
</article>r   z	<a href="r:   2   )	r'   r   r   r(   r   extract_iterrE   r   Queue)r2   r   r   _creator_urlr]   datar3   cntr   post_urls              r   r6   NekohouseUserExtractor.itemsh   s     "kk!1WIVG9=q45<<<;@@DC))$
LIq99tyy{C'HHmmX33 J
 Rx3K2K s   B?Cr   N)
r   r   r   r   rN   rR   rS   rT   r6   r   r   r   r   rV   rV   c   s    K::G7Gr   rV   N)r   commonr   r   r!   r   BASE_PATTERNrR   r   r   rV   r   r   r   <module>ri      sI    + & -::" "H/ HV/ r   