
    i<                     l    S r SSKJr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://komikcast.li/   )ChapterExtractorMangaExtractor   )textzF(?:https?://)?(?:www\.)?komikcast\d*\.(?:l(?:i|a|ol)|com|cz|site|mo?e)c                   *    \ rS rSrSrSrSrSS jrSrg)	KomikcastBase   z#Base class for komikcast extractors	komikcastzhttps://komikcast.liNc                    Uc  0 n[         R                  " S5      nUR                  [         R                  " U5      5      nUR	                  5       u  pVUS'   nU(       a  UR                  S5      S   US'   U(       a8  UR                  5       R                  S5      (       d  UR                  5       US'   OSUS'   [         R                  " U5      US	'   S
US'   SUS'   U$ )z7Parse 'chapter_string' value and add its info to 'data'z1(?:(.*) Chapter )?0*(\d+)([^ ]*)(?: (?:- )?(.+))?chapter_minorz	 Chapter     mangazbahasa indonesiatitle chapteridlang
Indonesianlanguage)
r   rematchunescapegroups	partitionlower
startswithstrip	parse_int)selfchapter_stringdatapatternr   r   r   r   s           K/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/komikcast.pyparse_chapter_string"KomikcastBase.parse_chapter_string   s    <D''NOdmmN;<7<||~4_-u!OOK8;DM112DEE!KKMDMDM..1YV'Z     )N)	__name__
__module____qualname____firstlineno____doc__categoryrootr$   __static_attributes__r'   r&   r#   r   r      s    -H!Dr&   r   c                   2    \ rS rSrSr\S-   rSrS rS r	Sr
g)	KomikcastChapterExtractor-   z&Extractor for komikcast manga chaptersz(/chapter/[^/?#]+/)z#https://komikcast.li/chapter/TITLE/c                 T    [         R                  " USS5      nU R                  U5      $ )N<title> - Komikcast<)r   extrr$   )r   pageinfos      r#   metadata"KomikcastChapterExtractor.metadata2   s%    yyy/:((..r&   c                     [         R                  " USS5      n[         R                  " S5      nUR                  U5       Vs/ s H  n[         R                  " U5      S 4PM     sn$ s  snf )Nz<div class="main-reading-areaz</divz<img[^>]* src=[\"']([^\"']+))r   r6   r   findallr   )r   r7   
readerarear"   urls        r#   images KomikcastChapterExtractor.images6   se    YY17<
''9: z2
2 ]]3&2
 	
 
s   "A'r'   N)r(   r)   r*   r+   r,   BASE_PATTERNr"   exampler9   r?   r/   r'   r&   r#   r1   r1   -   s    033G3G/
r&   r1   c                   6    \ rS rSrSr\r\S-   rSr	S r
S rSrg)	KomikcastMangaExtractor@   zExtractor for komikcast mangaz(/(?:komik/)?[^/?#]+/?)$z https://komikcast.li/komik/TITLEc                 V   / nU R                  U5      n[        R                  " USS5       Hy  nUR                  S5      u  pVnUR	                  5       R                  S5      u  pxn	[        R                  " U5      US'   X-   US'   UR                  XSR                  5       45        M{     U$ )Nz#<a class="chapter-link-item" href="z</az	">Chapter.r   r   )	r9   r   extract_iter
rpartitionr   r   r   appendcopy)
r   r7   resultsr!   itemr>   _r   sepminors
             r#   chapters KomikcastMangaExtractor.chaptersF   s    }}T"%%;UDD"ook:OCG")--/";";C"@G%"nnW5DO$'KD!NNC-.D r&   c                    [         R                  " USS5      u  p#[         R                  " USSU5      u  pC[         R                  " USSU5      u  pS[         R                  " USSU5      u  pc[         R                  " U5      [         R                  " U5      [         R                  " U5      [         R                  " U5      S.$ )z#Return a dict with general metadatar4   r5   z!class="komik_info-content-genre">z</span>z>Author:z>Type:)r   genresauthortype)r   extractr   
split_htmlremove_html)r   r7   r   posrT   rU   mtypes          r#   r9    KomikcastMangaExtractor.metadataS   s    ll4_Ell5y#Gll4YDll4YD ]]5)oof-&&v.$$U+	
 	
r&   r'   N)r(   r)   r*   r+   r,   r1   chapterclassrA   r"   rB   rQ   r9   r/   r'   r&   r#   rD   rD   @   s$    ',L88G0G
r&   rD   N)
r,   commonr   r   r   r   rA   r   r1   rD   r'   r&   r#   <module>r_      s?    + 4 B 6
/? 
& 
m^  
r&   