
    i[	                         S r SSKJrJr  SSKJr  SSKr " S S\5      r\R                  S	S
SS.05      r	 " S S\5      r
 " S S\5      rg)z!Extractors for jschan Imageboards   )BaseExtractorMessage   )text    Nc                       \ rS rSrSrSrg)JschanExtractor   jschan N)__name__
__module____qualname____firstlineno__basecategory__static_attributes__r       H/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/jschan.pyr	   r	      s    Lr   r	   94chanzhttps://94chan.orgz94chan\.org)rootpatternc                   <    \ rS rSrSrSrSrSrSr\	S-   r
SrS	 rS
rg)JschanThreadExtractor   zExtractor for jschan threadsthread)z
{category}z{board}z"{threadId} {subject|nomarkup[:50]}z){postId}{num:?-//} {filename}.{extension}z{board}_{postId}_{num}z/([^/?#]+)/thread/(\d+)\.htmlz&https://94chan.org/a/thread/12345.htmlc              #     #    U R                    SU R                  S    SU R                  S    S3nU R                  U5      nUS   US'   UR                  SS	5      n[        R
                  S
U4v   [        R                  " U4U5       H  nUR                  SS	5      =n(       d  M  UR                  U5        [        U5      US'   [        U5       Hd  u  pgU R                    SUS    3nUR                  U5        XgS'   US   US'   [        R                  " US   U5        [        R                  X4v   Mf     M     g 7f)N//thread/z.jsonpostIdthreadIdrepliesr    filescountz/file/filenamenumsiteFilenameoriginalFilename)r   groupsrequest_jsonpopr   	Directory	itertoolschainupdatelen	enumerater   nameext_from_urlUrl)selfurlr   postspostr%   r(   files           r   itemsJschanThreadExtractor.items$   s-    1T[[_-Xdkk"o5FeL""3'#H-z

9b)V++OOVIu5D"--u-d#"%e*w!*5!1IC!YYKvd:.>-?@CKK'"%K+/
+;D())$/A*BDI!++s00 "2	 6s   B"D?(BD?r   N)r   r   r   r   __doc__subcategorydirectory_fmtfilename_fmtarchive_fmtBASE_PATTERNr   exampler;   r   r   r   r   r   r      s0    &K;M>L*K==G6G1r   r   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	JschanBoardExtractor8   zExtractor for jschan boardsboardz8/([^/?#]+)(?:/index\.html|/catalog\.html|/\d+\.html|/?$)zhttps://94chan.org/a/c              #      #    U R                   S   nU R                   SU S3nU R                  U5       H8  nU R                   SU SUS    S3n[        US'   [        R
                  X#4v   M:     g 7f)Nr    r   z/catalog.jsonr   r!   z.html
_extractor)r+   r   r,   r   r   Queue)r6   rG   r7   r   s       r   r;   JschanBoardExtractor.items?   sx     B1UG=1'',FYYKqxx0@/AGC#8F< --,, -s   A0A2r   N)r   r   r   r   r=   r>   rB   r   rC   r;   r   r   r   r   rE   rE   8   s%    %K A AG%G-r   rE   )r=   commonr   r   r$   r   r/   r	   r1   rB   r   rE   r   r   r   <module>rM      s\    ( *  m  %%$!' 1O 1<-? -r   