
    iG                     T    S r SSKJrJr  SSKJr  Sr " S S\5      r " S S	\5      rg
)z"Extractors for https://fanfox.net/   )ChapterExtractorMangaExtractor   )textz8(?:https?://)?(?:www\.|m\.)?(?:fanfox\.net|mangafox\.me)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)MangafoxChapterExtractor   z,Extractor for manga chapters from fanfox.netmangafoxhttps://m.fanfox.netz2(/manga/[^/?#]+/((?:v([^/?#]+)/)?c(\d+)([^/?#]*)))z.https://fanfox.net/manga/TITLE/v01/c001/1.htmlc                     UR                  5       u  o l        U l        U l        U l        U R
                  U-   U l        [        R                  " XU R                  S-   5        g )Nz/1.html)	groupscstrvolumechapterminorrooturlbaser   __init__)selfmatchbases      J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/mangafox.pyr   !MangafoxChapterExtractor.__init__   sG    AF>idlDJyy4'!!$t||i/GH    c           
      f   [         R                  " USS5      u  p#[         R                  " USSUR                  SU5      S-
  5      u  pC[         R                  " USSU5      u  pS[         R                  " US	SU5      u  pc[         R                  " U5      [         R                  " U R
                  5      [         R                  " U R                  5      U R                  =(       d    S
U R                  [         R                  " U5      [         R                  " U5      [         R                  " U5      S.$ )Nz<title>z</title>><z	</select>(   zvar series_id =;zvar chapter_id = )mangar   r   chapter_minorchapter_stringcountsidcid)	r   extractfindunescape	parse_intr   r   r   r   )r   pager!   posr$   r%   r&   s          r   metadata!MangafoxChapterExtractor.metadata   s    \\$	:>
\\#sDIIk37"<>
\\$(93D
\\$(:CE
 #mmE2"nnT[[9"nnT\\:"jj.B"ii"nnU3"nnS1"nnS1	
 		
r   c              #     #    Sn [         R                  " USS5      u  p4[         R                  " [         R                  " U5      5      S 4v   [         R                  " USSU5      u  p4[         R                  " [         R                  " U5      5      S 4v   US-  nU R	                  U R
                   SU S35      R                   nM  7f)Nr   z
<img src=""z src="r   /z.html)r   r'   ensure_http_schemer)   requestr   )r   r+   pnumurlr,   s        r   imagesMangafoxChapterExtractor.images0   s     ||D,<HC))$--*<=tCC||D(C=HC))$--*<=tCCAID<<4<<.$u =>CCD s   CC	)r   r   r   r   r   N)__name__
__module____qualname____firstlineno____doc__categoryr   BASE_PATTERNpatternexampler   r-   r6   __static_attributes__ r   r   r   r      s2    6H!D=>G>GI

$	Dr   r   c                   8    \ rS rSrSrSrSr\r\	S-   r
SrS rSrg	)
MangafoxMangaExtractor<   z#Extractor for manga from fanfox.netr
   r   z(/manga/[^/?#]+)/?$zhttps://fanfox.net/manga/TITLEc           
         / n[         R                  R                  n[        R                  " U5      nU" SS5      nU" SS5      nU" SS5        [        R
                  " USS5      R                  S5      u  pxn	[        R                  " U5      [        R                  " U5      [        R                  " [        R                  " U	5      5      [        R                  " U5      S	S
S.n
 SU" SS5      -   nU" U5      nU(       d  U$ UR                  5       u  ppn[        R                  " U5      [        R                  " U5      U=(       d    SUU R                  U" SS5      S5      S.nUR                  U
5        UR                  X45        M  )Nz<p class="title">z</p>z<p>Author(s):z<dd class="chlist">r    z<div class="manga-genres">z
</section>z<div class="manga-summary">enEnglish)r!   authordescriptiontagslanglanguagezhttps://z<a href="//r0   zright">z</span>z	%b %d, %Y)r   r   r"   r#   date)r   r?   r   r   extract_fromextr	partitionr)   remove_html
split_htmlr   r*   parse_datetimeupdateappend)r   r+   resultschapter_matchrP   r!   rI   genres_summarydatar5   r   r   r   r   r   s                    r   chaptersMangafoxMangaExtractor.chaptersD   s`   088>>  &(&1ov."B'!YY.

)1
2 	7
  ==/++F3==)9)9')BC??62$
 tM377C!#&E.3lln+AVe #'.."8"&.."9"'+2"&"&"5"5I.#=G NN4 NNC>*! r   rB   N)r8   r9   r:   r;   r<   r=   r   r   chapterclassr>   r?   r@   r]   rA   rB   r   r   rD   rD   <   s)    -H!D+L33G.G&+r   rD   N)	r<   commonr   r   r    r   r>   r   rD   rB   r   r   <module>ra      s1    ) 4 J(D/ (DV.+^ .+r   