
    i                     t    S r SSKJr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://myhentaigallery.com/   )	ExtractorGalleryExtractorMessage   )text	exceptionz"(?:https?://)?myhentaigallery\.comc                       \ rS rSrSrSrSrg)MyhentaigalleryBase   myhentaigalleryzhttps://myhentaigallery.com N)__name__
__module____qualname____firstlineno__categoryroot__static_attributes__r       Q/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/myhentaigallery.pyr
   r
      s     H(Dr   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g)MyhentaigalleryGalleryExtractor   z6Extractor for image galleries from myhentaigallery.com)z
{category}z&{gallery_id} {artist:?[/] /J, }{title}z'/g(?:allery/(?:thumbnails|show))?/(\d+)z#https://myhentaigallery.com/g/12345c                 |    US   U l         U R                   SU R                    3n[        R                  " XU5        g )Nr   z/g/)
gallery_idr   r   __init__)selfmatchurls      r   r   (MyhentaigalleryGalleryExtractor.__init__   s6    (3t/0!!$s3r   c                 J    U R                   U R                  R                  S'   g )NReferer)page_urlsessionheaders)r   s    r   _init%MyhentaigalleryGalleryExtractor._init   s    *.--Y'r   c                    [         R                  " U5      n[         R                  nU" SS5      R                  5       nUR	                  S5      (       a  USS  nU(       d  [
        R                  " S5      e[         R                  " U5      [         R                  " U R                  5      U" U" SS5      5      U" U" SS5      5      U" U" S	S5      5      U" U" S
S5      5      S.$ )Nz <div class="comic-description">
z</h1>z<h1>   galleryz        Categories:</div>z        Artists:z        Groups:z        Parodies:)titler   tagsartistgroupparodies)
r   extract_from
split_htmllstrip
startswithr   NotFoundErrorunescape	parse_intr   )r   pageextrsplitr,   s        r   metadata(MyhentaigalleryGalleryExtractor.metadata"   s      &8'BIIKF##!"IE)))44 --...9%:H EF%7H EF%6H EF%8H EF
 	
r   c           
          [         R                  " USS5       Vs/ s HA  n[         R                  " [         R                  " USS5      5      R	                  SS5      S 4PMC     sn$ s  snf )Nzclass="comic-thumb"r+   zsrc=""z/thumbnail/z
/original/)r   extract_iterr6   r9   replace)r   r8   r   s      r   images&MyhentaigalleryGalleryExtractor.images6   sj     ((/DhO
 P ]]499S'378@@|-.24O
 	
 
s   AA&)r   N)r   r   r   r   __doc__directory_fmtBASE_PATTERNpatternexampler   r&   r;   rA   r   r   r   r   r   r      s.    @LMGGG3G4
8
(
r   r   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
MyhentaigalleryTagExtractor>   z*Extractor for myhentaigallery tag searchestagz+(/g/(artist|category|group|parody)/(\d+).*)z*https://myhentaigallery.com/g/category/123c              #   r   #    S[         0nU R                  5        H  n[        R                  X!4v   M     g 7f)N
_extractor)r   	galleriesr   Queue)r   datar   s      r   items!MyhentaigalleryTagExtractor.itemsD   s0     =>>>#C--** $s   57c              #   t  #    U R                   nXR                  S   -   n U R                  U5      R                  n[        R                  " USS5       H   nU[        R
                  " USS5      -   v   M"      UR                  S5      nU[        R                  " USSU5      -   nM  ! [         a     g f = f7f)N    z<div class="comic-inner">z<divzhref="r>   z>Next<)	r   groupsrequestr   r?   r9   index
ValueErrorrextr)r   r   r   r8   innerposs         r   rN   %MyhentaigalleryTagExtractor.galleriesI   s     yy[[^#<<$))D**5v?TYYuh<<<?jj* D(C==C   s*   A6B89B( 
B8(
B52B84B55B8r   N)r   r   r   r   rC   subcategoryrE   rF   rG   rQ   rN   r   r   r   r   rI   rI   >   s$    4KKKG:G+
>r   rI   N)rC   commonr   r   r    r   r   rE   r
   r   rI   r   r   r   <module>r`      sB    2 8 8 4) )
'
&9;K '
T>"5y >r   