
    ip                     \    S r SSKJrJr  SSKJrJrJr  Sr " S S\5      r	 " S S	\	5      r
g
)z)Extractors for https://manga.madokami.al/   )	ExtractorMessage   )textutil	exceptionz!(?:https?://)?manga\.madokami\.alc                        \ rS rSrSrSrSrSrg)MadokamiExtractor   z"Base class for madokami extractorsmadokamizhttps://manga.madokami.al N)__name__
__module____qualname____firstlineno____doc__categoryroot__static_attributes__r       J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/madokami.pyr
   r
      s    ,H&Dr   r
   c                   8    \ rS rSrSrSrSrSr\S-   r	Sr
S rS	rg
)MadokamiMangaExtractor   zExtractor for madokami mangamanga)z
{category}z{manga}z{chapter_id}z/Manga/(\w/\w{2}/\w{4}/.+)z5https://manga.madokami.al/Manga/A/AB/ABCD/ABCDE_TITLEc              #     #    U R                  5       u  pU(       d  [        R                  " S5      e[        R                  " X5      U R
                  l        U R                   SU R                  S    3nU R                  U5      R                  n[        R                  " U5      n/ n U" SS5      =n(       d  OUR                  [        R                  " U5      [        R                  " U" SS5      5      [        R                  " U" SS5      5      [        R                  " U" S	S
5      5      U R!                  U" S	S
5      R#                  5       5      S.5        M  U R%                  S5      (       a  UR'                  5         U R(                  R+                  [        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,                  " U" SS5      5      U" SS5      R/                  5       S:H  S.5        [        R0                  " S5      R2                  n[        R0                  " S5      R2                  n	U GH8  n
U
S   nU" U5      =n(       ac  UR                  5       u  U
S'   pn[        R                  " U5      U
S'   [        R                  " U5      U
S'   [        R                  " U5      U
S'   OlU	" U5      =n(       aN  UR                  5       u  U
S'   pSU
S'   [        R                  " U5      U
S'   [        R                  " U5      U
S'   OS=U
S'   =U
S'   U
S'   U R                  U
S    -   n[        R4                  " X:5        [6        R8                  S!U
4v   [6        R:                  X:4v   GM;     g 7f)"Nzusername & passwordz/Manga/    z<tr data-record=""zhref="><z<td>z</td>)
chapter_idpathchapter_stringsizedatezchapter-reversezitemprop="name">z"itemprop="datePublished" content="-z<p class="staffz</p>r   r   z<h3>Genres</h3>z</div>z<h3>Tags</h3>zspan class="scanstatus">yes)r   yearauthorgenretagscompletez>(?i)((?:v(?:ol)?\.?\s*(\d+))(?:\s+ch?\.?\s*(\d+)(?:-(\d+))?)?)z(?i)(ch?\.?\s*(\d+)(?:-(\d+))?)r#   volumechapterchapter_endr"    )_get_auth_infor   AuthRequiredr   HTTPBasicAuthsessionauthr   groupsrequestr   extract_fromappend	parse_intunescapeparse_bytesparse_datetime_isostripconfigreversekwdictupdate
split_htmllowerresearchnameext_from_urlr   	DirectoryUrl)selfusernamepasswordurlpageextrchapterscidsearch_chstrsearch_chstr_minchchstrmatchr-   r.   ends                   r   itemsMadokamiMangaExtractor.items   s;    !002(()>?? ..xB74;;q>"23||C %%  & 3S99C9OO"nnS1d8S&9:"&--S#"?((fg)>?//VW0E0K0K0MN   ;;())mmD);S$ABnnT4c&; <ood+<f&EFqt!tLood+<h&GHood?H&EF7=CCEN
 	 ww23396 	  77.006 	 B'(E$U++u+=B\\^:#$fs#~~f58 $w 79$(NN3$7=!*51115:\\^2#$g 8 $w 79$(NN3$7=!CDD8Dr)}r-/@))bj(C!!#*##R++++s&&) s   OO	r   N)r   r   r   r   r   subcategorydirectory_fmtarchive_fmtBASE_PATTERNpatternexamplerX   r   r   r   r   r   r      s)    &K-M K::GEG='r   r   N)r   commonr   r   r0   r   r   r   r]   r
   r   r   r   r   <module>ra      s3    0 & $ $3'	 'E'. E'r   