
    i6                         S r SSKJrJ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\" SS9S 5       rg)z&Extractors for https://mangareader.to/   )ChapterExtractorMangaExtractor   )textutil)memcachez'(?:https?://)?(?:www\.)?mangareader\.toc                        \ rS rSrSrSrSrSrg)MangareaderBase   z%Base class for mangareader extractorsmangareaderzhttps://mangareader.to N)__name__
__module____qualname____firstlineno____doc__categoryroot__static_attributes__r       M/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/mangareader.pyr
   r
      s    /H#Dr   r
   c                   >    \ rS rSrSrSrSrSr\S-   r	Sr
S rS	 rS
rg)MangareaderChapterExtractor   z(Extractor for mangareader manga chapters)z
{category}z{manga}zB{volume:?v/ />02}{chapter:?c//>03}{chapter_minor:?//}{title:?: //}zT{manga}{volume:?_v//>02}{chapter:?_c//>03}{chapter_minor:?//}_{page:>03}.{extension}z{manga_id}_{chapter_id}_{page}z:/read/([\w-]+-\d+)/([^/?#]+)/(chapter|volume)-(\d+[^/?#]*)z6https://mangareader.to/read/MANGA-123/LANG/chapter-123c           	         U R                   u  p#pE[        R                  " SSSS.5      nU R                  R	                  SUSS9  U R
                   SU S	U S	U S
U 3	nU R                  U5      R                  n[        R                  " USS5      =U l	        n	[        X5      n
0 U
EU
SU S3   U   U   ES[        R                  " U	5      0E$ )Nverticalrtlhigh)readingModereadingDirectionqualitymr_settingszmangareader.to)domainz/read//-zdata-reading-id=""_s
chapter_id)groupsr   
json_dumpscookiessetr   requestr   extrcid_manga_info	parse_int)selfr'   pathlangtypechstrsettingsurlpager0   mangas              r   metadata$MangareaderChapterExtractor.metadata&   s    "&++D?? * % &$
 
 	9IJ6$qavQug>||C %%4)<cBB3D'

avQK &u-
 $..-
 	
r   c                    U R                   S   S:X  a  SOSnU R                   SU SU R                   3nSSS	S
.nSSSSS.nU R                  X4US9S   n[        R
                  " USS5       Vs/ s H  nUS 4PM	     sn$ s  snf )Nr   chapterchapvolz/ajax/image/list/r$   z	vertical,zhigh,z1,)moder!   hozPageSizeXMLHttpRequestemptycorszsame-origin)zX-Requested-WithzSec-Fetch-DestzSec-Fetch-ModezSec-Fetch-Site)paramsheadershtmlz
data-url="r&   )r*   r   r0   request_jsonr   extract_iter)r3   r:   keyr9   rG   rH   rI   s          r   images"MangareaderChapterExtractor.images;   s    A)3f,SE488*=&"
 !1 ' & -	
   W EfM ((|SA
A $KA
 	
 
s   0B)r0   N)r   r   r   r   r   directory_fmtfilename_fmtarchive_fmtBASE_PATTERNpatternexampler<   rM   r   r   r   r   r   r      s?    2NM	!  	)  1 1GFG
*
r   r   c                   0    \ rS rSrSr\r\S-   rSr	S r
Srg)MangareaderMangaExtractorQ   zExtractor for mangareader mangaz/([\w-]+-\d+)z https://mangareader.to/MANGA-123c                     [        X R                  S   5      nU R                  S5      =(       d    SnUS   U   R                  5        Vs/ s H  nUS   0 UEUE4PM     sn$ s  snf )N    r5   en	_chapterschapter_url)r1   r*   configvalues)r3   r:   r;   r5   infos        r   chapters"MangareaderMangaExtractor.chaptersW   sv    D++a.1{{6"*d k*40779
9 - "3U"3d"349
 	
 
s   A#r   N)r   r   r   r   r   r   chapterclassrR   rS   rT   r`   r   r   r   r   rV   rV   Q   s    ).L--G0G
r   rV   )keyargc                    U R                    SU 3nU R                  U5      R                  nUR                  S5      u  pEn[        R                  " U5      nU" SS5      nUUR                  S5      S   R                  S5      S   [        R
                  " U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      [        R                  " U" SS5      5      SS S2   [        R                  " U" SS5      5      [        R                  " [        R                  " U" SS5      5      5      [        R
                  " [        R                  " U" SS5      5      R                  SS5      5      S.nU R                   n	U" SS5      n0 =US'   n
[        R                  " USS5       GH  n[        R                  " USS5      n0 =X'   nUR                  S5      S   n[        R                  " USS5       H  n[        R                  " USS5      n[        R                  " USS5      n[        R                  " [        R                  " US S5      5      nUR                  S!5      u  nnnUR                  S"5      S   R                  5       [        R
                  " U5      UU-   UX-   US#.UU'   M     GM     U" S$S%5      n0 =US&'   nUR                  S'5      S(S   H  n[        R                  " USS)5      n0 =UU'   nUR                  S5      S   n[        R                  " US*S5       H~  n[        R                  " USS5      n[        R                  " US+S5      R                  S,5      S   n[        R
                  " U5      [        R                  " US-S5      SSUX-   US..UU'   M     M     [        R                  " U" S/S5      5      R                  5       US0'   U$ )1Nr$   r%   zproperty="og:url" content="r&   r   rY   zclass="manga-name"><zclass="manga-name-or">zclass="genres">z</div>z>Type:z>Status:z	>Authors:z>Published:z>Score:z>Views:, )	manga_url
manga_slugmanga_idr;   	manga_alttagsr6   statusauthor	publishedscoreviewszclass="chapters-list-ul">z
    </div>r[   z<ulz</ul>z id="z
-chapters"z<li z</li>zhref="zdata-number="zclass="name">.:)titler?   chapter_minorchapter_stringr\   r5   zclass="volume-list-ul">z
</section>_volumesz<div class="manga_list-wrapr   z	-volumes"zclass="item">z
tick-vol"> z src=")volumevolume_coverr?   ru   rv   r\   r5   zclass="description-modal">description)r   r.   r   
rpartitionextract_fromr2   unescape
split_htmlremove_htmlparse_floatreplacerK   r/   	partitionstripsplit)r3   
manga_pathr9   rI   slugr'   midr/   r;   baser`   groupr5   currentchr4   r@   namer?   sepminorvolumesrA   volns                           r   r1   r1   a   s   YYKq
%C<<!!D((-LDST"D
,c
2CnnS)!,77<Q?NN3't$93?@]]4(@##FG%6 AB  h!9:""4
H#=>//${H"=>qt!tD%%d=(&CD!!$"2"24x4! #" # 0 0x2! !"")'#r"24E" 99D +\:D$&&E+""48yy6#%%~~c"1%##E67;B99R3/D99R#6D==2!DED"&.."5GS%"&.."5a"8">">"@"&.."9"%+"&"&+"&GDM < 9* )<8D"$$E*9:12>yy5"$$~~c"1%$$UOXFC99S(C0D99S,4??DQGD #'.."6"&))C3"?"#"$"&"&+"&GDM	 G ?(  ==$h*0 116 
- Lr   N)r   commonr   r   rg   r   r   cacher   rR   r
   r   rV   r1   r   r   r   <module>r      s[    - 4  9$ $6
/3C 6
r
 
  
K Kr   