
    i                     :    S r SSKJrJr  SSKJr   " S S\5      rg)z%Extractors for https://www.2chan.net/   )	ExtractorMessage   )textc                   ^    \ 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 rS rS rS rS rSrg)_2chanThreadExtractor   zExtractor for 2chan threads2chanthread)z
{category}z{board_name}z{thread}z{tim}.{extension}z{board}_{thread}_{tim}z6(?:https?://)?([\w-]+)\.2chan\.net/([^/?#]+)/res/(\d+)z&https://dec.2chan.net/12/res/12345.htmc                 v    [         R                  " X5        UR                  5       u  U l        U l        U l        g )N)r   __init__groupsserverboardr   )selfmatchs     G/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/2chan.pyr   _2chanThreadExtractor.__init__   s(    4'/4||~,TZ    c              #     #    SU R                    SU R                   SU R                   S3nU R                  U5      R                  nU R                  U5      n[        R                  SU4v   U R                  U5       HD  nSU;  a  M  UR                  U5        SUS    SUS    S	US    3n[        R                  X4v   MF     g 7f)
Nzhttps://z.2chan.net/z/res/z.htm filenamer   r   z/src/)r   r   r   requestr   metadatar   	DirectorypostsupdateUrl)r   urlpagedataposts        r   items_2chanThreadExtractor.items   s     $++ '::,eDKK=6||C %%}}T"T))JJt$D%KKd8n- .G}oU4
+;*<>C++s(( %s   CCc                     [         R                  " USS5      R                  S5      u  p#nU R                  UU R                  USS U R
                  S.$ )z"Collect metadata for extractor-jobz<title>z</title>z - N)r   titler   
board_namer   )r   extr
rpartitionr   r   r   )r   r    r'   _	boardnames        r   r   _2chanThreadExtractor.metadata+   sU    "ii)Z))3E): 	) kkZZ#CR.kk
 	
r   c                     [         R                  " USS5      nUR                  S5       Vs/ s H  nU R                  U5      PM     sn$ s  snf )z Build a list of all post-objectsz<div class="thre"z<div style="clear:left"></div>z<table border=0>)r   r)   splitparse)r   r    r"   s      r   r   _2chanThreadExtractor.posts7   sT    yy%'GI 

#56
6 JJt6
 	
 
s   A
c                 Z   U R                  U5      nUS   (       a  US   R                  5       US'   [        R                  " USS5      nU(       aZ  UR	                  S5      (       dD  U R                  X5        US   R                  S5      u  US'   oBS'   US   S	S
 US'   SUS   -   US'   U$ )z6Build post-object by extracting data from an HTML postnamez
<a href="/"zbin/jumpr   .tim	extensionNtimeext)_extract_poststripr   r)   
startswith_extract_image	partition)r   r"   r!   pathr+   s        r   r0   _2chanThreadExtractor.parse@   s    !!$'<<--/DLyy|S1
33+04Z0@0J0J30O-DK-;s+DL[ 11DKr   c                 6    [         R                  " US5      S   $ )N))r"   zclass="csb"><)r3   zclass="cnm">rC   )nowzclass="cnw">rC   )nozclass="cno">No.rC   )Nz<blockquoter   )com>z</blockquote>    r   extract_all)r   r"   s     r   r;   #_2chanThreadExtractor._extract_postM   s&     '
   	r   c                 6    [         R                  " USSU5        g )N))N_blankr   )r   rG   rC   )fsize( rH   rI   )r   r"   r!   s      r   r>   $_2chanThreadExtractor._extract_imageW   s      
 d		r   )r   r   r   N)__name__
__module____qualname____firstlineno____doc__categorysubcategorydirectory_fmtfilename_fmtarchive_fmtpatternexampler   r#   r   r   r0   r;   r>   __static_attributes__ r   r   r   r      sK    %HK>M&L*KGG6G>)


r   r   N)rV   commonr   r   r   r   r   r_   r   r   <module>ra      s    , & MI Mr   