
    i                         S r SSKJrJr  SSKJr  SSKJr  SSKrSSK	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://mangataro.org/   )ChapterExtractorMangaExtractor   )text)memcache    Nz(?:https?://)?mangataro\.orgc                        \ rS rSrSrSrSrSrg)MangataroBase   z#Base class for mangataro extractors	mangatarozhttps://mangataro.org N)__name__
__module____qualname____firstlineno____doc__categoryroot__static_attributes__r       K/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/mangataro.pyr
   r
      s    -H"Dr   r
   c                   2    \ rS rSrSr\S-   rSrS rS r	Sr
g)	MangataroChapterExtractor   z&Extractor for mangataro manga chaptersz$(/read/([^/?#]+)/(?:[^/?#]*-)?(\d+))z,https://mangataro.org/read/MANGA/ch123-12345c                    U R                   u  p#nU R                  U5      S   S   nUS   nU[        U5      -
  nUS   R                  SS5      n0 [	        X5      E[        U5      S:  a  US   OS[        U5      U(       a  [        [        US	5      5      SS  OS[        R                  " U5      US
   U R                  US   5      U R                  US   5      S.E$ )Nz@graphr   positiondescriptionz -    r       urldatePublisheddateModified)titlechapterchapter_minor
chapter_idchapter_urldatedate_updated)groups_extract_jsonldintsplit_manga_infolenstrroundr   	parse_intparse_datetime_iso)	selfpage_slugr'   comicr%   minordescs	            r   metadata"MangataroChapterExtractor.metadata   s    "kk$$T*84Q7
##g,&]#))%3	
$%	
$'IMarW9>Sua1!"5B!^^J7"5\!44U?5KL!44U>5JK	
 		
r   c                     U R                    SU R                  S    3nU R                  U5      nUS    Vs/ s H  o"S 4PM     sn$ s  snf )Nz!/auth/chapter-content?chapter_id=r   images)r   r+   request_json)r5   r6   r!   datas       r   r?    MangataroChapterExtractor.images1   sN    <T[[^<LM  %'+H~6~d~666s   Ar   N)r   r   r   r   r   BASE_PATTERNpatternexampler<   r?   r   r   r   r   r   r      s    0DDG<G
$7r   r   c                   6    \ rS rSrSr\r\S-   rSr	S r
S rSrg)	MangataroMangaExtractor7   zExtractor for mangataro mangaz/manga/([^/?#]+)z!https://mangataro.org/manga/MANGAc                 Z   [        X R                  S   5      nU R                  S-   nUS   SSSS.nUS   SS	S
S.n/ n U R                  U5        U R	                  X4US9nUS    H  nUS   R                  S5      u  pnUR                  US   0 UES[        R                  " UR                  SS 5      5      0EUE[        R                  " U	5      U
(       a  SU-   OSS.E45        M     UR                  S5      (       d   U$ US==   UR                  S5      =(       d    US   -  ss'   M  )Nr   z/auth/manga-chaptersmanga_idi  DESC)rJ   offsetlimitorder	manga_urlemptycorszsame-origin)RefererzSec-Fetch-DestzSec-Fetch-ModezSec-Fetch-Site)paramsheaderschaptersr%   .r!   r'   idr   )r%   r&   has_morerL   rM   )r/   r+   r   _update_paramsr@   	partitionappendr   r3   popget)r5   r7   mangar!   rS   rT   resultsrA   chr%   sepr:   s               r   rU    MangataroMangaExtractor.chapters=   sV   D++a.1ii00j)	
 $K0%$+	
 '$$S$ID:&&(m&=&=c&B#e5	 ,, T^^BFF44F%G, , &*^^G%<47S5[R,    ' 88J'' 8'!2!EfWoF! r   c           	      @   [        [        R                  " 5       5      =o!R                  S5      :X  a  g [        R                  " U5      u	  p4pV        nU SUS US US US 3n[        R
                  " UR                  5       5      R                  5       S S US'   X!S'   g )N_tsmng_ch_z>04z>02   _t)r-   timer]   gmtimehashlibmd5encode	hexdigest)	r5   rS   tsYmdHr7   secrets	            r   rY   &MangataroMangaExtractor._update_paramsb   s     diik""Bzz%'88$(KKO!aAq!Q4wqgaWQsGAc7;{{6==?3==?Dtur   r   N)r   r   r   r   r   r   chapterclassrC   rD   rE   rU   rY   r   r   r   r   rG   rG   7   s%    ',L00G1G#Jr   rG   )keyargc                 N   U R                    SU 3nU R                  U5      R                  nU R                  U5      nUS   R	                  S5      S   R	                  S5      S   [        R
                  " USS5      US   US	   US
   S   R                  S5      US   US   [        R                  " [        R
                  " USS5      5      [        R                  " [        R
                  " USS5      5      [        R                  " [        R
                  " USS5      5      S.
$ )Nz/manga/namez | r    zdata-manga-id=""r!   imageauthorz, genrestatuszid="description-content-tab">z</div></div>z>Genres</h4>z</div>z>Serialization</h4>)
r^   rJ   rO   coverr|   r}   r~   r   tags	publisher)
r   requestr   r,   
rpartitionextrr.   unescape
split_htmlremove_html)r5   r8   r!   r6   r^   s        r   r/   r/   m   s   YYKwtf
%C<<!!D  &E V}//6q9DDSI!Lyy'8#>U|W~Xv.44T:W~X}}TYY1>&C Dtyy.((, -''		')3 4 r   )r   commonr   r   r   r   cacher   rj   rh   rC   r
   r   rG   r/   r   r   r   <module>r      s_    , 4    .# #7/? 7:3m^ 3l 
 r   