
    i                     x    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g)z#Extractors for https://kaliscan.me/   )ChapterExtractorMangaExtractor   )text)memcachez(?:https?://)?kaliscan\.mec                   <    \ rS rSrSrSrSr\" SS9S
S j5       rS	r	g)KaliscanBase   z"Base class for kaliscan extractorskaliscanzhttps://kaliscan.mer   )keyargNc                 0   Uc,  U R                    SU 3nU R                  U5      R                  n[        R                  " U5      n[        R                  " U" SS5      5      n[        R
                  " U" SS5      5      nU" SS5      =n(       a/  UR                  S5       Vs/ s H  oR                  5       PM     nnOSn[        R                  " U" S	S
5      5      n	[        R                  " U" SS
5      5      n
[        R                  " U" SS
5      5       Vs/ s H  oR                  S5      PM     nnU" SS5      =n(       a9  [        R                  " XR                  S5      S-   S  5      R                  5       nOSnUUUUU	U
UUSSS.
$ s  snf s  snf )Nz/manga/bookId =;z<h1><z<h2>, zAuthors :</strong>z</p>zStatus :</strong>zGenres :</strong>z ,zclass="content"z<div class="readmore">r    enEnglish)
mangamanga_id
manga_slugmanga_titlesauthorstatusgenresdescriptionlanglanguage)rootrequestr   extract_from	parse_intunescapesplitstripremove_html
split_htmlfind)selfr   pageurlextrr   title
alt_titlestr   r   gr   descrs                 J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/kaliscan.py
manga_dataKaliscanBase.manga_data   s   <YYKwzl3C<<$))D  &>>$z3"78d63/0fc**:*-7-=-=c-BC-B'')-BJCJJ!!$ &#* +!!$#) *)-:) ** + **A''$- ** + *,CDD5D$$U::c?1+<+=%>?EEGEE "$&&"""! %
 	
! D+s   #FFr   N)
__name__
__module____qualname____firstlineno____doc__categoryr!   r   r5   __static_attributes__r       r4   r	   r	      s&    ,H DQ$
 $
r?   r	   c                   2    \ rS rSrSr\S-   rSrS rS r	Sr
g)	KaliscanChapterExtractor=   z%Extractor for kaliscan manga chaptersz"(/manga/([\w-]+)/chapter-([\d.]+))z,https://kaliscan.me/manga/ID-MANGA/chapter-1c                    [         R                  " U5      n[         R                  " U" SS5      5      nU" SS5        [         R                  " U" SS5      5      nU" SS5        U" SS5      R                  S5      nUR	                  S5      u  pgn[         R                  " U5      Xx-   US	.U R                  U R                  S
   5      En	U(       a  U	S   (       d  X9S'   U	$ )Nr   r   z
bookSlug =zchapterId =zchapterSlug =zchapterNumber =z "'.)chapterchapter_minor
chapter_idr   r   )r   r#   r$   r'   	partitionr5   groups)
r+   r,   r.   r   rG   chapter_numberrE   sepminordatas
             r4   metadata!KaliscanChapterExtractor.metadataB   s      &>>$z3"78\3^^D$<=
_c"/5;;FC,66s;e "^^G4 ['
 oodkk!n-	
 D,'r?   c                     [         R                  " USS5      nU(       d  gS UR                  S5       5        Vs/ s H  nU(       d  M  US 4PM     sn$ s  snf )Nzvar chapImages = ""r   c              3   @   #    U  H  oR                  5       v   M     g 7fr7   )r'   ).0us     r4   	<genexpr>2KaliscanChapterExtractor.images.<locals>.<genexpr>]   s     A+@a		+@s   r   )r   r.   r&   )r+   r,   
images_strr-   s       r4   imagesKaliscanChapterExtractor.imagesW   s\    YYt%93?
 B:+;+;C+@A
A S$KA
 	
 
s   A
Ar   N)r8   r9   r:   r;   r<   BASE_PATTERNpatternexamplerN   rX   r>   r   r?   r4   rA   rA   =   s    /BBG<G*
r?   rA   c                   0    \ rS rSrSr\r\S-   rSr	S r
Srg)KaliscanMangaExtractorb   zExtractor for kaliscan mangaz(/manga/([\w-]+))/?$z"https://kaliscan.me/manga/ID-MANGAc                    U R                  U R                  S   U5      n[        R                  " USS5      nU(       d  g/ n[        R                  " USS5       H  n[        R                  " USS5      nU(       d  M$  US	   S
:X  a  U R
                  U-   nUR                  S5      S   R                  S5      u  pxn	UR                  U[        R                  " U5      X-   S.UE45        M     U$ )Nr   zid="chapter-list">z</ul>r   z<liz</li>zhref="rQ       /z	/chapter-r   rD   )rE   rF   )
r5   rI   r   r.   extract_iterr!   
rpartitionrH   appendr$   )
r+   r,   rM   chapter_listresultslir-   rE   rK   rL   s
             r4   chaptersKaliscanMangaExtractor.chaptersh   s    t{{1~t4yy';WE##L%AB))B#.C1v}ii#o"%..##  )	#  G% NNC!%!8!$" "   B r?   r   N)r8   r9   r:   r;   r<   rA   chapterclassrZ   r[   r\   ri   r>   r   r?   r4   r^   r^   b   s    &+L44G2Gr?   r^   N)r<   commonr   r   r   r   cacher   rZ   r	   rA   r^   r   r?   r4   <module>rn      sA    * 4  ,*
 *
Z"
|-= "
J\> r?   