
    i                     :    S r SSKJrJr  SSKJr   " S S\5      rg)z'Extractors for http://www.keenspot.com/   )	ExtractorMessage   )textc                   d    \ 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S rS rS rS rS rSrg)KeenspotComicExtractor   z)Extractor for webcomics from keenspot.comkeenspotcomic)z
{category}z{comic}z{filename}.{extension}z{comic}_{filename}z=(?:https?://)?(?!www\.|forums\.)([\w-]+)\.keenspot\.com(/.+)?zhttp://COMIC.keenspot.com/c                     [         R                  " X5        US   R                  5       U l        US   U l        SU R                  -   S-   U l        SU l        SU l        U R                  U l	        g )Nr   r   zhttp://z.keenspot.com zclass="ksc")
r   __init__lowerr   pathroot_needle_image_next_needle_next)selfmatchs     J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/keenspot.pyr   KeenspotComicExtractor.__init__   s]    4'1X^^%
!H	

*_<	#&&
    c              #   2  #    SU R                   0n[        R                  SU4v   U R                  U R                  S-   5       nUR
                  (       a0  UR                  R                  nUS UR                  SS5       U l        UR                  nAS S S 5        U R                  W5      nU R                  (       a  U R                  U R                  -   nS n[        U R                  5      nU(       Ga  X5:w  Ga  UnU R                  [        R                  " U R                  U5      5      R                  nSn UR                  U R                  U5      nUS:  a  O[        R                  " USSXv-   5      u  pUR!                  S5      (       a  MY  US   S:X  a  U R                  U-   nOS	U;   a  S
U-   n[        R"                  U[        R$                  " X5      4v   M  U R'                  U5      nU(       a	  X5:w  a  GM  g g g g ! , (       d  f       GNy= f7f)Nr   r   /       zsrc=""z.jszyoutube.com/zytdl:)r   r   	Directoryrequestr   historyurlindexr   _firstr   lenr   urljoinfindextractendswithUrlnameext_from_urlr   )	r   dataresponser#   pageprevilenposimgs	            r   itemsKeenspotComicExtractor.items#   s    $T))\\$))c/*h&&** 23!23	==D + kk$99))dii'C4;;ckD<<TYY <=BBDCiiS17<<gsCJG<<&&q6S=))c/C#s*!C-Ckk3(=(=c(HHH  **T"C% ckckc +*s&   AHAHE+HH
HHc                    U R                   S:X  a  U R                  U l        SU l        g[        R
                  " USS5      =n(       a,  U R                   S:X  a	  SU l        U$ U R                  U l        U$ UR                  S5      nUS	:  a*  U R                  U l        [        R                  " US
SU5      $ UR                  S5      nUS	:  aS  U R                   S:X  a  U R                  U l        SU l        OU R                  U l        [        R                  " US
SU5      $ UR                  S5      nUS	:  a#  SU l        [        R                  " US
SU5      S	   $ UR                  S5      nUS	:  a'  SU l        SU l        [        R                  " US
SU5      $ UR                  S5      nUS	:  a'  SU l        SU l        [        R                  " US
SU5      $ U R                  R                  S5        g )Nbrawlinthefamilyz<div id="comic">z7http://brawlinthefamily.keenspot.com/comic/theshowdown/z<link rel="first" href="r   	porcelainzid="porArchivetop_"zid="first_day1"r   href="z>FIRST PAGE<	lastbloodz<div id="kscomicpart"z<a href="/archive.htmlz>First Comic<z	</header>zclass="navarchive"zid="flip_FirstDay"zclass="flip_Pages ksc"zid="flip_ArcButton"zUnrecognized page layout)r   _next_brawlr   r   r   extrr   
_next_linkr(   _next_idrextr_next_lastbloodr)   logerror)r   r/   r#   r2   s       r   r%   KeenspotComicExtractor._firstH   s   ::++))DJ,DKL))D"<cBB3Bzz[(4 J "__
Jii)*!8DJ::dHc377ii'!8zz[(!11
0!]]
::dHc377ii/0!83DL<<hS9!<<ii(!8%DK/DL::dHc377ii,-!82DK0DL::dHc37712r   c                     UR                  U R                  5      [        U R                  5      -   n[        R                  " USSU5      S   $ )Nr9   r   r   )r$   r   r&   r   r)   r   r/   r2   s      r   r   #KeenspotComicExtractor._next_needlew   s<    jj&T\\)::||D(C5a88r   c                 2    [         R                  " USS5      $ )Nz<link rel="next" href="r   )r   r<   )r   r/   s     r   r=   !KeenspotComicExtractor._next_link{   s    yy8#>>r   c                 f    UR                  S5      nUS:  a  [        R                  " USSU5      $ S $ )Nz	id="next_r   r9   r   )r(   r   r?   rE   s      r   r>   KeenspotComicExtractor._next_id~   s0    ii$7:axtzz$#s3ITIr   c                 \    UR                  S5      n[        R                  " USSU5      S   $ )Nzlink rel='next'zhref=''r   )r$   r   r)   rE   s      r   r@   &KeenspotComicExtractor._next_lastblood   s+    jj*+||D(C5a88r   c                 j    UR                  S5      n[        R                  " USSU5      nSU;   a  S $ U$ )Nzcomic-nav-nextr9   r   z?random)r$   r   r?   )r   r/   r2   r#   s       r   r;   "KeenspotComicExtractor._next_brawl   s7    jj)*jjxc2 C't0S0r   )r   r   r   r   r   r   N)__name__
__module____qualname____firstlineno____doc__categorysubcategorydirectory_fmtfilename_fmtarchive_fmtpatternexampler   r4   r%   r   r=   r>   r@   r;   __static_attributes__ r   r   r   r      sS    3HK-M+L&KNG*G'##J-^9?J91r   r   N)rT   commonr   r   r   r   r   r]   r   r   <module>r_      s    . & z1Y z1r   