
    i                         S r SSKJrJr  SSKJr  SSKJr  Sr " S S5      r	 " S	 S
\	\5      r
 " S S\	\5      r " S S\	\5      rg)z$Extractors for https://hiperdex.com/   )ChapterExtractorMangaExtractor   )text)memcachezL((?:https?://)?(?:www\.)?(?:1st)?hiper(?:dex|toon)\d?\.(?:com|net|info|top))c                   B    \ rS rSrSrSrSr\" SS9SS j5       rS	 r	S
r
g)HiperdexBase   z"Base class for hiperdex extractorshiperdexzhttps://hiperdex.comr   )keyargNc                    U(       d-  U R                    SU S3nU R                  U5      R                  n[        R                  " U5      n[        R                  " U" SS5      5      [        R                  " U" SS5      5      [        R
                  " U" SS5      5      [        R                  " U" SS	5      5      [        R                  " U" S
S	5      5      [        R                  " U" SS	5      5      S S S2   U" SS5      R                  5       [        R                  " [        R                  " U" SS	5      5      5      U" SS5      R                  5       [        R                  " [        R                  " U" SS	5      5      5      SSS.$ )Nz/manga//zproperty="og:url" content=""z property="name" title="zid="averagerate"><zclass="author-content">z</div>zclass="artist-content">zclass="genres-content">r   zclass="summary-content">z!<div class="description-summary">Englishen)urlmangascoreauthorartistgenretypereleasestatusdescriptionlanguagelang)
rootrequestr   extract_fromunescapeparse_floatremove_html
split_htmlstrip	parse_int)selfr   pager   extrs        J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/hiperdex.py
manga_dataHiperdexBase.manga_data   sg   YYKwugQ/C<<$))D  & }}T-s&4 5}}T*C&1 2''#S)* +'')8)5 6'')8)5 6t)8(5 669c;*C116~~d&6&6t*H86 '7 8*C116++DMM$3X;? -@ A!-
 	
    c                 *   UR                  S5      (       a  USS  nUR                  S5      u  pn[        R                  " U5      U(       a  US:w  a  SU-   OSS.nUR	                  U R                  U R                  R                  5       5      5        U$ )Nzchapter-   -end. )chapterchapter_minor)
startswith	partitionr   r'   updater,   r   lower)r(   r5   _minordatas        r+   chapter_dataHiperdexBase.chapter_data8   s    j))abkG#--c2E!^^G4,1eunS5["
 	DOODJJ$4$4$678r.    N)__name__
__module____qualname____firstlineno____doc__categoryr   r   r,   r>   __static_attributes__r@   r.   r+   r	   r	      s+    ,H!DQ
 
>	r.   r	   c                   8    \ rS rSrSr\S-   rSrS rS r	S r
Srg	)
HiperdexChapterExtractorD   z%Extractor for hiperdex manga chaptersz(/mangas?/([^/?#]+)/([^/?#]+))z)https://hiperdex.com/manga/MANGA/CHAPTER/c                     UR                  5       u  p#U l        U l        [        R                  " U5      U l        [        R                  " XU R
                  U-   S-   5        g Nr   )groupsr   r5   r   ensure_http_schemer   r   __init__r(   matchr   paths       r+   rP   !HiperdexChapterExtractor.__init__I   sH    /4||~,DJ++D1	!!$tyy4/?#/EFr.   c                 8    U R                  U R                  5      $ rA   )r>   r5   )r(   r;   s     r+   metadata!HiperdexChapterExtractor.metadataN   s      ..r.   c                     [         R                  " S5      nUR                  U5       Vs/ s H  nUR                  5       S 4PM     sn$ s  snf )Nz'id="image-\d+"\s+(?:data-)?src="([^"]+))r   refindallr&   )r(   r)   patternr   s       r+   imagesHiperdexChapterExtractor.imagesQ   sL    ''DE t,
, YY[$,
 	
 
s   A	)r5   r   r   N)rB   rC   rD   rE   rF   BASE_PATTERNr[   examplerP   rV   r\   rH   r@   r.   r+   rJ   rJ   D   s%    />>G9GG
/
r.   rJ   c                   6    \ rS rSrSr\r\S-   rSr	S r
S rSrg)	HiperdexMangaExtractorY   zExtractor for hiperdex mangaz(/mangas?/([^/?#]+))/?$z!https://hiperdex.com/manga/MANGA/c                     UR                  5       u  p#U l        [        R                  " U5      U l        [
        R                  " XU R                  U-   S-   5        g rM   )rN   r   r   rO   r   r   rP   rQ   s       r+   rP   HiperdexMangaExtractor.__init___   sD    !&DJ++D1	TYY-=-CDr.   c           	         U R                  U R                  U5      nUS   =U l        nU R                  S-   nSSU R                  S[        R
                  " U R                  SS  5      -   S.nU R                  USUS	9R                  n/ n[        R                  " US
S5       H_  n[        R                  " USS5      nUR                  S5      R                  S5      S   nUR                  X0R                  U5      45        Ma     U$ )Nr   zajax/chapters/z*/*XMLHttpRequestzhttps://r0   )AcceptzX-Requested-WithOriginRefererPOST)methodheadersz<li class="wp-manga-chapterz</li>href="r   r   r   )r,   r   page_urlr   r   quoter    extract_iterr*   rstrip
rpartitionappendr>   )	r(   r)   r=   r   rl   htmlresultsitemr5   s	            r+   chaptersHiperdexMangaExtractor.chaptersd   s    tzz40"5k)mm.. 0ii!DJJt}}QR/@$AA	
 ||C|@EE%%3W>D))D(C0Cjjo005a8GNNC!2!27!;<=	>
 r.   )r   rn   r   N)rB   rC   rD   rE   rF   rJ   chapterclassr^   r[   r_   rP   rw   rH   r@   r.   r+   ra   ra   Y   s%    &+L77G1GE
r.   ra   c                   B    \ rS rSrSrSrSr\rSr	\
S-   rSrS rS rS	rg
)HiperdexArtistExtractorz   z,Extractor for an artists's manga on hiperdexr   Fz%(/manga-a(?:rtist|uthor)/(?:[^/?#]+))z'https://hiperdex.com/manga-artist/NAME/c                     [         R                  " US   5      U l        [        R                  " XU R                  US   -   S-   5        g )Nr   r   r   )r   rO   r   r   rP   )r(   rR   s     r+   rP    HiperdexArtistExtractor.__init__   s:    ++E!H5	TYYq-AC-GHr.   c                     / n[         R                  " USS5       H.  n[         R                  " USS5      nUR                  U0 45        M0     U$ )Nzid="manga-item-z<imgrm   r   )r   rp   r*   rs   )r(   r)   ru   infor   s        r+   rw    HiperdexArtistExtractor.chapters   sK    %%d,=vFD))D(C0CNNC9% G r.   )r   N)rB   rC   rD   rE   rF   subcategorycategorytransferra   ry   reverser^   r[   r_   rP   rw   rH   r@   r.   r+   r{   r{   z   s5    6K)LGEEG7GIr.   r{   N)rF   commonr   r   r4   r   cacher   r^   r	   rJ   ra   r{   r@   r.   r+   <module>r      sR    + 4  G. .b
|-= 
*\> BlN r.   