
    i                         S r SSKJrJrJrJr  SSKJrJr  SSK	r	Sr
 " S S	5      r " S
 S\\5      r " S S\\5      r " S S\\5      rSS jrg)z*Extractors for https://readcomiconline.li/   )	ExtractorChapterExtractorMangaExtractorMessage   )text	exception    Nz6(?i)(?:https?://)?(?:www\.)?readcomiconline\.(?:li|to)c                   6    \ rS rSrSrSrSrSrSrSr	Sr
S	 rS
rg)ReadcomiconlineBase   z)Base class for readcomiconline extractorsreadcomiconline)z
{category}z{comic}z{issue:>03}z*{comic}_{issue:>03}_{page:>03}.{extension}z{issue_id}_{page}zhttps://readcomiconline.li)g      @g      @c                 ^    [         R                  " X40 UD6nUR                  (       a  SUR                  ;  a  U$ U R	                  SS5      S:X  a7  U R
                  R                  SUR                  5        U R                  5         O$[        R                  " SUR                   S35      eM  )z,Detect and handle redirects to CAPTCHA pagesz/AreYouHumancaptchastopwaitz^Redirect to 
%s
Visit this URL in your browser, solve the CAPTCHA, and press ENTER to continuezRedirect to 
zA
Visit this URL in your browser and solve the CAPTCHA to continue)
r   requesthistoryurlconfiglogwarninginputr	   AbortExtraction)selfr   kwargsresponses       Q/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/readcomiconline.pyr   ReadcomiconlineBase.request   s     ((=f=H##~X\\'I{{9f-7  ?@HN 

//$X\\N 3@ AB B      N)__name__
__module____qualname____firstlineno____doc__categorydirectory_fmtfilename_fmtarchive_fmtrootrequest_intervalr   __static_attributes__r!   r    r   r   r      s*    3 H<M?L%K'D!Br    r   c                   <    \ rS rSrSrSr\S-   rSrS r	S r
S rS	rg
)ReadcomiconlineIssueExtractor,   z2Extractor for comic-issues from readcomiconline.liissuez!(/Comic/[^/?#]+/[^/?#]+\?)([^#]+)z9https://readcomiconline.li/Comic/TITLE/Issue-123?id=12345c                 Z   [         R                  " U R                  S   5      nU R                  S5      nUb  US:X  a  SU;  a  SUS'   O[	        U5      US'   SUS'   U =R
                  SR                  S UR                  5        5       5      -  sl        UR                  S	5      U l	        g )
Nr   qualityautohq0readType&c              3   4   #    U  H  u  pU S U 3v   M     g7f)=Nr!   ).0kvs      r   	<genexpr>6ReadcomiconlineIssueExtractor._init.<locals>.<genexpr>=   s     !HQCq*s   id)
r   parse_querygroupsr   strpage_urljoinitemsgetissue_id)r   paramsr3   s      r   _init#ReadcomiconlineIssueExtractor._init2   s    !!$++a.1++i(?g/&$(y! #GF9 z!H!HHH

4(r    c                     [         R                  " USS5      u  p#[         R                  " USSU5      u  pC[         R                  " S5      R                  U5      nUUS   =(       d    US   [         R                  " U R
                  5      SSS	.$ )
Nz   - Read
    z
z    z(?:Issue )?#(\d+)|(.+)r   r   enEnglishcomicr1   rH   langlanguage)r   extractrematch	parse_intrH   )r   pagerP   posiinforU   s         r   metadata&ReadcomiconlineIssueExtractor.metadata@   sz    \\$(;VD
\\$<
1288?1X)qt}}5!
 	
r    c                    / nSSU R                   00n[        R                  " USS5      u  pE[        R                  " USSU5      u  pe[        R                  " USSU5      u  pu[        R                  " S	5      R	                  U5      nUR                  U5      S
S   HS  n	[        R                  " U	SS5      n	U H  u  pU	R                  X5      n	M     UR                  [        X5      U45        MU     U$ )N_http_headersRefererzreturn baeu(l, ''zvar pth = ' zvar z= 'z*l = l\.replace\(/([^/]+)/g, [\"']([^\"']*)r   )
rD   r   rS   rT   findallsplitextrreplaceappendbaeu)r   rW   resultsrefererr+   rX   _varreplacementspathneedlerepls               r   images$ReadcomiconlineIssueExtractor.imagesL   s    "Y$>?LL'93?	LL}b#>	LLvuc:	ww9;;B74= 	 JJsOAB'D99T5#.D ,||F1 !- NND,g67 ( r    )rH   N)r"   r#   r$   r%   r&   subcategoryBASE_PATTERNpatternexamplerJ   rZ   ro   r-   r!   r    r   r/   r/   ,   s)    <KAAGIG)

r    r/   c                   4    \ rS rSrSr\rSr\S-   r	Sr
S rSrg)	ReadcomiconlineComicExtractora   z,Extractor for comics from readcomiconline.lirP   z(/Comic/[^/?#]+/?)$z&https://readcomiconline.li/Comic/TITLEc                 J   / n[         R                  " USS5      u  p4[         R                  " USSU5      u  pUR                  S5      S   R                  5       nSU S3n[         R                  " U5      n[         R
                  " US	S
5       H  nUR                  U5      u  pxn	UR                  S5      S   nU	R                  S5      (       a  U	SS  n	UR                  U R                  U-   X9[         R                  " UR                  S5      S   5      SSS.45        M     U$ )Nz class="barTitle"><z class="listing">z</table>informationr
   z title="Read  z href="z comic online "zIssue #   r:   r   rM   rN   rO   )r   rS   
rpartitionstripunescapeextract_iter	partition
startswithre   r+   rV   )
r   rW   rg   rP   rX   rm   itemr   ri   r1   s
             r   chapters&ReadcomiconlineComicExtractor.chaptersh   s   \\$(<cB
\\$(;ZM
  /288: q)e$%%dI7GHD NN62MCE..%a(C	**ab	NNDIIO NN3>>#+>q+AB).   I r    r!   N)r"   r#   r$   r%   r&   r/   chapterclassrq   rr   rs   rt   r   r-   r!   r    r   rv   rv   a   s$    60LK33G6Gr    rv   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
ReadcomiconlineTagExtractor~   z2Extractor for comics from readcomiconline.li liststagz:(/(Artist|Genre|Publisher|Writer|)/([^/?#]+)(?:/[^/?#]+)?)z&https://readcomiconline.li/Artist/NAMEc                 `    US   R                  5       U l        [        R                  " X5        g )Nr   )lowerrq   r   __init__)r   rU   s     r   r   $ReadcomiconlineTagExtractor.__init__   s#     8>>+4'r    c              #     #    U R                   u  pn[        R                  " U5      U R                  S'   U R                  R                  SSU R                  SS  S9  U R                  S-   nS[        0nU R                   SU 3nS	S
0n U R                  XgS9R                  n[        R                  " USS5       H"  n	SU	;  d  M  [        R                  XI-   U4v   M$     SU;  a  g US	==   S
-  ss'   Mm  7f)Nsearch_tagsz	list-viewlist   )domainz/Comic/
_extractor/rW   r   )rI   z<a href="/Comic/r|   z?id=z>&rsaquo; Next <)rB   r   unquotekwdictcookiessetr+   rv   r   r   r   Queue)
r   rl   ri   namebasedatar   rI   rW   hrefs
             r   rF   !ReadcomiconlineTagExtractor.items   s     %)\\$%7M"fTYYqr]Cyy9$;<1TF#!<<<388D))$0BCH%!--d:: I "-6NaN s   C C71C7)rq   N)r"   r#   r$   r%   r&   rq   rr   rs   rt   r   rF   r-   r!   r    r   r   r   ~   s'    <KLMG6G( r    r   c                    U(       d  UnU R                  SS5      n U R                  SS5      n U R                  S5      (       a  U R                  X!S5      $ U R                  S5      u  p4nSU;   nUS	U(       a  S
OS nUSS USS	 -   nUSS USS	 -   n[        R                  " U5      R                  5       nUSS USS	 -   nUSS U(       a  SOS-   nUS-   U-   U-   U-   $ )z8https://readcomiconline.li/Scripts/rguard.min.js?v=1.5.4zpw_.g28xbz	d2pr.x_27hhttpsr   ?z=s0Ni   !   2   r
   i      z=s1600r   )rd   r   r   binascii
a2b_base64decode)r   r+   root_blogspotrl   sepquerycontains_s0s          r   rf   rf      s    
++j#
&C
++k3
'C
~~g{{=22}}S)Du4-K*{+D2;bc"D#;bc"Dt$++-D":RS	!D":+8<D#:s"U**r    )r`   zhttps://2.bp.blogspot.com)r&   commonr   r   r   r   r`   r   r	   r   rr   r   r/   rv   r   rf   r!   r    r   <module>r      s\    1 H H  HB B42$79I 2j$7 : "5y  D+r    