
    i^                     `    S r SSKJrJrJr  SSKJrJr  SSKr " S S\5      r	 " S	 S
\5      r
g)z'Extractors for https://hentainexus.com/   )GalleryExtractor	ExtractorMessage   )textutil    Nc                   F    \ 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)HentainexusGalleryExtractor   z#Extractor for hentainexus gallerieshentainexushttps://hentainexus.comz@(?i)(?:https?://)?(?:www\.)?hentainexus\.com/(?:view|read)/(\d+)z"https://hentainexus.com/view/12345c                 |    US   U l         U R                   SU R                    3n[        R                  " XU5        g )Nr   /view/)
gallery_idrootr   __init__)selfmatchurls      M/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/hentainexus.pyr   $HentainexusGalleryExtractor.__init__   s6    (6$//!23!!$s3    c                    [         R                  n[         R                  " U5      n[         R                  " U R                  5      U" SS5      U" SS5      S.nS HG  nU" U" SU-   S-   S5      5      nUR                  S	5      u  pgnU(       a  UOUXER                  5       '   MI     / =US
'   n	[         R                  " USS5       HG  n
U	R                  [         R                  " U
5      R                  S5      R                  SS5      5        MI     US   (       d  SUS'   [        R                  " US   5      US'   SUS
   ;   a  SUS'   OSUS
   ;   a  SUS'   OSUS'   U R                  U5      US'   U$ )Nz"og:image" content=""z<h1 class="title">z</h1>)r   covertitle)	ArtistBookCircleEventLanguageMagazineParody	PublisherDescriptionzviewcolumn">z</td> (tagsz<a href="/?q=tag:+ languageEnglishlangdoujin	DoujinshitypeillustrationIllustrationMangatitle_conventional)r   remove_htmlextract_from	parse_intr   
rpartitionlowerextract_iterappendunquotestripreplacer   language_to_code_join_title)r   pagermveextrdatakeyvalueseprestr(   ks              r   metadata$HentainexusGalleryExtractor.metadata   sl     &..95s;3W=
FCns2W<gFGE$//5E),$D	F ! Vt""4)<cBAKKQ--c2::3DE C J(D,,T*-=>VtF|#&DLtF|+)DL"DL%)%5%5d%;!"r   c           	         U R                    SU R                   3nU R                  U5      R                  n[        R
                  " U R                  [        R                  " USS5      5      5      nS nU R                  SS5      (       d  SS0nU H  nXVS'   M	     / nU H  n UR                  US	   U45        M     U$ ! [         a     M-  f = f)
Nz/read/zinitReader("r   originalTAcceptzimage/webp,*/*_http_headersimage)r   r   requestr   r   
json_loads_decoderC   configr;   KeyError)r   _r   rA   imgsheadersimgresultss           r   images"HentainexusGalleryExtractor.images=   s    6$//!23||C %%t||DII.#-'  ( ) {{:t,,!12G'.O$  CGc23 
   s   $C  
CCc                     SnSn[        [        R                  " U5      5      n[        S[	        U5      5       H  nXE   [        X%   5      -  XE'   M     USS nSnU H2  nXx-  n[        S5       H  n	US-  (       a
  US-	  S-  nM  US-	  nM     M4     X7S-     nSn
[	        U5      n[        [        S	5      5      n[        S	5       H"  nXU   -   XeU-     -   S
-  n
X   X   sX'   X'   M$     / nS=n=n=nn
[        S[	        U5      5       Hp  nX-   S
-  nXXU   -   S
-     -   S
-  n
X-   X   -   S
-  nX   X   sX'   X'   XXUUU-   S
-     -   S
-     -   S
-     nUR                  [        UU   U-  5      5        Mr     SR                  U5      $ )Nzhentainexus.com)r                                 %   )   +   /   5   r	   @      r      r`          )	listbinascii
a2b_base64rangelenordr;   chrjoin)r   rD   hostnameprimesblobirE   CrI   rV   xLSresultacmns                     r   rS   #HentainexusGalleryExtractor._decodeQ   s   $MH''-.q#h-(AgHK 00DG ) 1RjAA1Xq5QAQA	   s7OHssAqTCAJ&#-AqtJAD!$  AAr3t9%A#AaDC'((C/A$AqtJAD!$qaQ#..#566#=>AMM#d1gk*+ & wwvr   c                    US   nUS   nUS   nUS   nUS   nUS   nUS   nUR                  S5      S	:  a  S
nUR                  S5      S	:  a  S
nSn	U(       a	  U	SU S3-  n	U(       a  U	SU SU S3-  n	O	U	SU S3-  n	X-  n	UR                  5       S:w  a	  U	SU S3-  n	U(       a	  U	SU S3-  n	U(       a	  U	SU S3-  n	U	$ )Neventartistcircler   parodybookmagazine,r^   Variousrr   (z) [r'   z)] z] zoriginal work))countr9   )
r   rD   r   r   r   r   r   r   r   jts
             r   r@   'HentainexusGalleryExtractor._join_titlex   s   WhhWhF|
# <<!F<<!FAeWB-BAfXRxs++BAfXR. B
<<>_,Bvha. BBtfA,BBxj""B	r   )r   N)__name__
__module____qualname____firstlineno____doc__categoryr   patternexampler   rJ   r[   rS   r@   __static_attributes__ r   r   r   r      s6    -H$D'G2G4
@(%Nr   r   c                   2    \ rS rSrSrSrSrSrSrSr	S r
S	rg
)HentainexusSearchExtractor   z(Extractor for hentainexus search resultsr   searchr   zO(?i)(?:https?://)?(?:www\.)?hentainexus\.com(?:/page/\d+)?/?(?:\?(q=[^/?#]+))?$z https://hentainexus.com/?q=QUERYc              #     #    [         R                  " U R                  S   5      nS[        0nSnU(       a  U R	                  U R
                  U-   US9R                   n[         R                  " U5      n U" SS5      nU(       d  O'[        R                  U R
                  S-   U-   U4v   M8  U" SS5      nU(       a  M  g g 7f)	Nr	   
_extractor/)paramsz<a href="/view/r   r   zclass="pagination-next" href=")	r   parse_querygroupsr   rQ   r   r6   r   Queue)r   r   rD   pathrA   rC   r   s          r   items HentainexusSearchExtractor.items   s     !!$++a.19:<<		D 0<@EED$$T*D!"3S9
!mmTYY%9J%FLL	  8#>D ds   B;C?Cr   N)r   r   r   r   r   r   subcategoryr   r   r   r   r   r   r   r   r   r      s%    2HK$D6G0G?r   r   )r   commonr   r   r   rr   r   r   rt   r   r   r   r   r   <module>r      s2    . 8 8  F"2 FR? ?r   