
    i^                     p    S r SSKJrJrJr  SSKJrJr   " S S\5      r " S S\\5      r	 " S	 S
\5      r
g)z"Extractors for https://imgbox.com/   )	ExtractorMessageAsynchronousMixin   )text	exceptionc                   >    \ rS rSrSrSrSrS rS rS r	S r
S	 rS
rg)ImgboxExtractor   z Base class for imgbox extractorsimgboxzhttps://imgbox.comc              #     #    U R                  5       n[        R                  SU4v   U R                  5        H  nU R	                  U R
                  S-   U-   5      R                  nU R                  U5      nUS   (       d  MK  UR                  U5        X$S'   [        R                  " US   U5        [        R                  U R                  U5      U4v   M     g 7f)N /filename	image_key)get_job_metadatar   	Directoryget_image_keysrequestrootr   get_image_metadataupdatenameext_from_urlUrlget_image_url)selfdatar   imgpageimgdatas        H/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/imgbox.pyitemsImgboxExtractor.items   s     $$&T)),,.Ill499s?Y#>?DDG--g6Gz""t$'0$%%gj&97Ckk4#5#5g#>GG /s   A=CACc                     0 $ )z"Collect metadata for extractor-job r   s    r    r    ImgboxExtractor.get_job_metadata!       	    c                     / $ )z,Return an iterable containing all image-keysr$   r%   s    r    r   ImgboxExtractor.get_image_keys%   r'   r(   c                 6    [         R                  " US5      S   $ )z(Collect metadata for a downloadable file))numz</a> &nbsp; z of )Nzclass="image-container"r   )r   z title=""    )r   extract_allr   pages     r    r   "ImgboxExtractor.get_image_metadata)   s&     '
  	 	r(   c                 2    [         R                  " USS5      $ )zExtract download-urlzproperty="og:image" content="r-   )r   extrr0   s     r    r   ImgboxExtractor.get_image_url1   s    yy>DDr(   r$   N)__name__
__module____qualname____firstlineno____doc__categoryr   r!   r   r   r   r   __static_attributes__r$   r(   r    r
   r
      s*    *HDHEr(   r
   c                   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Srg)ImgboxGalleryExtractor6   z-Extractor for image galleries from imgbox.comgallery)z
{category}z{title} - {gallery_key}z {num:>03}-{filename}.{extension}z{gallery_key}_{image_key}z7(?:https?://)?(?:www\.)?imgbox\.com/g/([A-Za-z0-9]{10})zhttps://imgbox.com/g/12345abcdec                 P    [         R                  X5        US   U l        / U l        g Nr   )r
   __init__gallery_key
image_keysr   matchs     r    rC   ImgboxGalleryExtractor.__init__?   s#      - 8r(   c                    U R                  U R                  S-   U R                  -   5      R                  nSU;   a  [        R
                  " S5      e[        R                  " S5      R                  U5      U l        [        R                  " USS5      nUR                  S5      u  p#nU R                  [        R                  " U5      US S S	.$ )
Nz/g/z)The specified gallery could not be found.r@   z<a href="/([^"]+)"><img alt="z<h1>z</h1>z - i)rD   titlecount)r   r   rD   r   r   NotFoundErrorrefindallrE   r4   
rpartitionunescape)r   r1   rJ   _rK   s        r    r   'ImgboxGalleryExtractor.get_job_metadataD   s    ||DII-0@0@@AFF6$>)))44'',..5gdm 	 		$0**51%++]]5)3BZ
 	
r(   c                     U R                   $ N)rE   r%   s    r    r   %ImgboxGalleryExtractor.get_image_keysS   s    r(   )rD   rE   N)r6   r7   r8   r9   r:   subcategorydirectory_fmtfilename_fmtarchive_fmtpatternexamplerC   r   r   r<   r$   r(   r    r>   r>   6   s2    7K=M5L-KHG/G

r(   r>   c                   :    \ rS rSrSrSrSrSrSrS r	S r
S	 rS
rg)ImgboxImageExtractorW   z+Extractor for single images from imgbox.comimagez{image_key}zk(?:https?://)?(?:(?:www\.|i\.)?imgbox\.com|images\d+\.imgbox\.com/[0-9a-f]{2}/[0-9a-f]{2})/([A-Za-z0-9]{8})zhttps://imgbox.com/1234abcdc                 B    [         R                  X5        US   U l        g rB   )r
   rC   r   rF   s     r    rC   ImgboxImageExtractor.__init__a   s      -qr(   c                     U R                   4$ rT   r   r%   s    r    r   #ImgboxImageExtractor.get_image_keyse   s      r(   c                 p    [         R                  X5      nUS   (       d  [        R                  " S5      eU$ )Nr   r_   )r
   r   r   rL   )r   r1   r   s      r    r   'ImgboxImageExtractor.get_image_metadatah   s0    11$=J))'22r(   rc   N)r6   r7   r8   r9   r:   rV   rY   rZ   r[   rC   r   r   r<   r$   r(   r    r]   r]   W   s,    5KK%G ,G"!r(   r]   N)r:   commonr   r   r   r   r   r   r
   r>   r]   r$   r(   r    <module>rh      s>    ) 9 9 $Ei $EN. B? r(   