
    i"R                         S SK r S SKrS SKrSSKJrJrJrJrJrJ	r	J
r
Jr  SrSrSrSrSr\R"                  rS r " S	 S
5      r " S S5      rg)    N   )versionconfigoptionoutput	extractorjobutil	exceptionu   Mike Fährmannu"   Copyright 2014-2025 Mike FährmannGPLv2zmike_faehrmann@web.dec                  >&    [         R                  " 5       n U R                  5       n[        R                  " UR
                  5      nUR                  (       a  [        R                  " 5         UR                  (       a  [        R                  " UR                  SS9  UR                  (       a.  SS Kn[        R                  " UR                  SUR                  S9  UR                  (       a/   SS Kn[        R                  " UR                  SUR"                  S9  UR$                  (       dP  S[        l        [        R(                  " SSS5        [*        R,                  (       a  [        R(                  " SS	S5        UR.                  (       aK  UR.                  nUS
:X  a  SnOUR1                  S5      (       a  SUSS   3n[        R(                  " SSU5        UR2                  b:  [        R(                  " SSUR2                  5        [        R(                  " SSS5        UR4                  (       a"  [        R(                  " SSUR4                  5        UR6                  (       a%  [        R(                  " SSSUR6                   35        UR8                  (       a%  [        R(                  " SSSUR8                   35        UR:                  (       a  UR:                  R=                  S5      u  pgnUR=                  S5      u  pgn	UR=                  S5      u  pgn
U(       a  US   S:X  a  USS  nS nOUR=                  S5      u  pn[        R(                  " SSXhXU
45        UR>                  (       a"  [        R(                  " SSUR>                  5        UR@                   H  n[        R(                  " U6   M     [        RB                  " 5         [        RD                  " SS5      =n(       ar  SS K#n[I        U[J        5      (       a  URM                  S5      nU HB  n[O        XS 5      nUc  URQ                  SU5        M&  URG                  UURR                  5        MD     [        RD                  " SS 5      =n(       a  SS!K*J+n  URY                  U5        [*        R,                  (       a  [        RD                  " SS	[        RZ                  5      (       a  SS"K.J/nJ0nJ1n  URd                  nURg                  5       nS# Hi  nURi                  U5      nURk                  UU" U5      5        URl                  S$-  (       a  MB  U=Rl                  S$-  sl6        URo                  UU5        Mk     S[        l        [        RD                  " SS%S5      nUSL a  OU(       d  [*        Rp                  [*        l9        Od[I        U[J        5      (       aO  US&:X  a  [*        Rp                  [*        l9        O/UR1                  S'5      (       a  [*        Rt                  [*        l9        [        RD                  " SS(S5      (       d!  SS)K*J;n  URx                  Rz                  Ul>        [        RD                  " SS*5      =n(       a  SS)K*J;n  UUl?        [        RD                  " SS+5      =n(       a=  [*        R                  R                  [*        R                  " U5      R                  5        [        R                  " UR
                  5        UR
                  [        R                  :  a2  [        R(                  " SS,S-5        [        R(                  " S.S/S 5        GOUR
                  [        R                  ::  a  SS KHnSS KIn[*        R                  (       a  S0[        R                   S13nO$[*        R                  " 5       =n (       a  S2U -   nOS3nUR                  S4[        U5        UR                  S5UR                  5       UR                  5       5         UR                  S6UR                  UR                  R                  R                  5        UR                  S7[        R                  5        UR                  (       aw  SS8K*JVn!  [        R                  " S95      nU!R                  UR                  5      n"U"c  UR                  S:5        gUR                  S;U"U"S:X  a  S<OS=U!R                  5       5        gUR                  (       a_  UR                  S>:X  a  [        R                  " 5       $ UR                  S?:X  a  [        R                  " 5       $ [        R                  " 5       $ UR                  (       a3  SS KInSUR                  R                  R                  R                  lb        UR                  (       aO  SS@K*JAn#  U#R                  R                  SAUR                  -   5      n$U#R                  U$5      n%U%R                  5       $ [        R                  " 5         [        RD                  " SBSC5      n&U&b1  [I        U&[J        5      (       a  U&RM                  S5      n&U&[        li        UR                  (       a  UR                  n'U'R                  S 5        O[        RD                  " SBSD5      n'U'(       a  SS Kln(/ n&U' H  n)U)(       aQ  [*        R                  " U)5      n U(R                  " U5      n*U&R                  [        R                  " UU*5      5        M[  U&R                  [        R                  " 5       5        M     [        U&5      S:  a  SS Kun,U,R                  " U&6 [        lw        O*U&(       d  S[        lw        O[        U&S   5      [        lw        UR                  (       a\  [        R                  R                  S35        [        R                  R                  SFR                  [        R                  5      5        gUR                  b  [        R                  R                  n-SGR                  n.[        GR                   " 5       n/UR                  (       a-  [*        GR                  " UR                  SSH9n0G[        U0U/5      n/U/ Hb  n$U-" U." U$R                  U$GR                  (       a  SFU$GR                  -   OS3U$GR                  U$GR
                  U$GR                  5      5        Md     g[        RD                  " SSI5      =n1(       a>  U1 H8  n2[I        U2[J        5      (       a  U2S 4n2UGR                  R                  U25        M:     UGR                  (       dn  UGR                  (       d\  UR:                  (       d  [        GR                  " SBS5      (       a  UGR                  R                  SJ5        OU R                  SK5        UGR                  (       aT  G[        GR                  n3UGR                  U3l        [        RD                  " SSLS5      (       a  U3GR                  U3l        O`UGR                   (       a(  G[        GR"                  n3UGR                   S-
  U3l        O&UGR&                  =(       d    G[        GR(                  n3G[+        5       n4[        R                  " SM5      =U4l        n5[        GR.                  " SNSOSSP9=n6(       aF  [        R                  " SQ5      =n7G[        GR0                  l        U7GR5                  U65        SU7l        [        GR.                  " SRSOSSSST9=n6(       a6  [        R                  " SR5      =n8U4l        U8GR5                  U65        SU8l        U4GR;                  UGR                  5        UGR                  (       aA  UGR                   H0  u  n2n9 [*        R                  " U25      nU4GR=                  UU95        M2     [        RD                  " SS/S5      n:U:(       aK  [        U4GR                  5      S:  a1  UR
                  [        GR>                  :  a  U4GRA                  U:5        [        GR                  " SBSW5      =n;(       a"  U;SX:X  a  SYSZS[S\S]S^S_S`SaSbScSdSe.n;SSfKhJn<  U;U<l        Sn=U4 GH  n> UR                  SgU3R                  U>5        [I        U>G[F        5      (       as  U>GRH                   H  n[        R(                  " U6   M     [        GRJ                  " U>GRL                  5         U3" U>Rl                  5      R                  5       n?S S S 5        OU3" U>5      R                  5       n?W?(       a  U=U?-  n=U4R                  5         OU4GRO                  5          U4GRY                  5         GM     U=$ ! [         a    SS Kn GNf = f! [         a     G	Nsf = f! [         a4  n+URQ                  SEUU+R                  R                  U+5         S n+A+GM?  S n+A+ff = f! [         a*  n+U5R                  U+5        [O        U+SUSV5      s S n+A+s  $ S n+A+ff = f! , (       d  f       N= f! G[P        GRR                   a    UR                  ShU>5         GM  G[P        GRT                   a     GNG[P        GRV                   a+    UR                  SiU>5        U=Sj-  n=U4R                  5          GNJf = f! G[Z         a    G[]        Sk5      eG[^         a     gG[`         a+  n+SS Kn@U+GRb                  U@GRd                  :w  a  e  S n+A+gS n+A+ff = f)lNT)strictr   )r   loadsF colors)r   ansiz/Oz{filename}.{extension}z\f   filenamezbase-directory	directorypostprocessorsskipzabort:z
terminate::+/r   z::cookieszpostprocessor-optionszsignals-ignore,zsignal '%s' is not definedzsignals-actions)actions)windllwintypesbyref)ii   zfilters-environmentrawdefaultzformat-operator-dot)	formatterzformat-separatorglobalsmodenull)
downloaderprogressz - Executable ()z - Git HEAD:  zVersion %s%szPython %s - %szrequests %s - urllib3 %szConfiguration Files %s)cacher-   zDatabase file not availablezDeleted %d entr%s from '%s'yiesinitstatus)updatezupdate:)r   moduleszmodule-sourcesz'Unable to load modules from %s (%s: %s)
z2{}{}
Category: {} - Subcategory: {}
Example : {}

)negatezinput-filesnoopz_The following arguments are required: URL
Use 'gallery-dl --help' to get a list of all options.fallback	inputfileunsupportedfilez	{message})fmtdeferunsupported	errorfilea)r:   r'   r;   code   zcategory-mapcompatcoomerpartykemonopartysaintkoharunaverchzzknaverwebtoonpixiv)rI   novel)rI   z
novel-user)rI   znovel-series)rI   znovel-bookmark)coomerkemonoturboschalenetworkz
naver-blogznaver-chzzkznaver-webtoonzpixiv-novelzpixiv-novel:novelzpixiv-novel:userzpixiv-novel:serieszpixiv-novel:bookmark)commonzStarting %s for '%s'zRestarting '%s'zUnsupported URL '%s'@   z
KeyboardInterrupt)r   build_parser
parse_argsr   initialize_loggingloglevelconfig_loadr   loadconfigs_jsonconfigs_yamlyaml	safe_loadconfigs_tomltomllibImportErrortomlr   r   ANSIsetr
   WINDOWSr   
startswithr   r   abort	terminatecookies_from_browser	partition
options_ppoptionsconfigure_standard_streamsgetsignal
isinstancestrsplitgetattrwarningSIG_IGNr,   r   parse_signalsCOLORSctypesr   r    r!   kernel32DWORDGetStdHandleGetConsoleModevalueSetConsoleModecompile_expression_rawcompile_expressioncompile_expression_defaultdictr%   operator
attrgetter_attrgetter
_SEPARATORGLOBALSr2   import_file__dict__configure_loggingloggingWARNINGDEBUGplatformrequests
EXECUTABLEr   __variant__git_headdebug__version__python_versionpackagesurllib3AttributeError_filesclear_cacher-   	getLoggerclearerrorinfo_path
initializer1   open_externprint_traffic
connectionHTTPConnection
debuglevelUpdateExtractorfrom_url	UpdateJobrunremap_categoriesr   r3   extractor_sourcesappendosexpand_pathlistdir_modules_path	Exception	__class____name___modules_internallen	itertoolschain_module_iteriterlist_modulessysstdoutwritejoinlist_extractorsformat
extractorsbuild_extractor_filterfilter__doc__categorysubcategoryexampleinput_filesurlsinterpolate	list_urlsr	   UrlJobmaxdepthhandle_url_fallback
handle_url	dump_jsonDataJobresolvejobtypeDownloadJobInputManagerlogsetup_logging_handlerJobulog
addHandler	propagateerradd_listadd_fileERRORr*   rO   CATEGORY_MAPExtendedUrlgconfigapplylconfigsuccessr   RestartExtractionControlExceptionNoExtractorErrornextKeyboardInterrupt
SystemExitBrokenPipeErrorOSErrorerrnoEPIPE)Aparserargsr   rY   r^   r   browser_profilekeyringdomain	containeroptssignalsrk   signal_name
signal_numr   r   r    r!   ru   r'   	handle_idhandle	filterenvr%   	separatorpathr   r   extrar   r-   cntr2   extrujobr3   sourcesr   sourcefilesexcr   r   r:   r   fltrr   
input_filer   input_manager	input_loghandlerr   elogactionpformatcatmaprO   retvalurlr1   r   sA                                                                    @/app/mltbenv/lib/python3.13/site-packages/gallery_dl/__init__.pymainr     s^   e$$&  "''6 KKMKK))$7KK))$dnnM& KK))$djjI{{FKJJr8U+||

;6==}}H43$$U++~.JJr:x0>>%JJr+T^^<JJr;+JJr+T-@-@A::JJr6VDJJ<#89>>JJr6Z/?#@A$$"&";";"E"Ec"JG")"3"3C"8G!(!2!23!7G71:,#ABK	(/(9(9$(?%IJJr9'f'> ???JJr2DOODLLDJJ ! 	))+ jj%56676'3''!--,&$V$?
%KK <kJMM*fnn=  ' jj%67777!!!'* <<FJJ{FFMMJJ66H>>#D'	!..y9''d<zzC''JJ#%J++FD9 ( FK JJr#8$?	&*&A&AD#	3''E!*.*E*E'%%i00*.*M*M' zz"3T::#$-$6$6$A$AI!

2'9::9:##,I  ::b),,4,LL 0 0 6 ? ?@ 	  /==GOO+JJ{FF3JJ
D9]]gmm+)'*=*=)>a@!]]_,,'(2IInk59II&--/1B1B1DF		4".."++33??A II.>##G,C++d../C{		78HH2#uekkmE;;{{f$((**(}}&))++MNH%%00??J;; ))229t{{3JKD##D)D88: 	! **^Y7'3''!--, 'I !!,,GNN4 jj1ABGG!++F3DG "

4 0y'>'>tU'KL
 NN9#>#>#@A " 7|a )2')B	&)+	&)-gaj)9	&$$R(JJTYYy'8'89:J G !!-JJ$$E()/  #--/J##22((8#D*5
"cMM+/<<<D4<<'RMM4#3#3LL	  #p _ %jj];;{;"-J!*c22&0$%7
$$++J7 #.
 999T%5%5%5,,0B0B&	13 13II$$V,LLLM ~~~**#'>> ::k:t<<)0)D)DG&++"&..1"4,,9#//(NM,3,=,=k,JJM	 !66%;dD Dw D&-&7&7&FFsww|(!& !66[s$H Hw H+2+<+<[+II}((!& ""499-*.*:*:&J9#//
;%..tV< +; jjj$?G3}112Q6MMGMM1&&w/++NNKKvKX%)6)6)0)1)0)0)7)00B0G0I0KF .&,# F$*II4g6F6FL!#{33$'KKD"JJ- %0#\\#++6%,SYY%7%;%;%=F 76 ")!1!1!3&(%++-%--/ ""$9 %: MW
  p " ~ % G$M$(#--*@*@#G GGr % 9!,&sFC889J 76 !22 II/5 11  11 *II4c:bLF!'')*  0.// 
 	  99# $	s  C+AK .AF 2QAK :KAK ;AF# =A<AK :*AK %5AK $AK  AK B#AK 9CAK 8AF4C,AK 4C/AK $KAK *)AG5B7AK BA<AH=D!AH,D(;AH=E#AK E$AH=E5AK FAF FAK FAF F AK F#
AF1F-AK F0AF1F1AK F4
AG2F>(AG-G&AK G-AG2G2AK G5
AH)G?AH$HAH)HAK H$AH)H)AK H,
AH:	H6AH=H=(AKI%AK I)AKI>AK J<AKJ=AK K AKKAK K!ALK'
ALK1!ALLALc                   j    \ rS rSrS rS rS rSS jrSS jrS r	S	 r
S
 rS rS rS rS rS rSrg)r   i  c                 t    / U l         SU l        S =U l        U l        SU l        S U l        SU l        S U l        g )Nr   r,   r   )r   r  r   r   _url_item_index_pformatselfs    r  __init__InputManager.__init__  s:    	
""48	
    c                 :    U R                   R                  U5        g N)r   r   r  r  s     r  add_urlInputManager.add_url  s    		r  c                 .    U =R                   U-  sl         g r  )r   )r  r   s     r  r   InputManager.add_list  s    		T	r  Nc           
      p   US:X  a)  U(       d"   [         R                  R                  5       nSnOv [        USS9 nUR                  5       nSSS5        U R                  (       a  WU R                  U'   O	UW0U l        US:X  a  U R                  nOUS:X  a  U R                  nOSn/ n/ n/ nSn	U R                  R                  n
[        U5       GH  u  pUR                  5       nU(       a	  US   S	:X  a  M(  US   S:X  a  [        U5      S
:  a  US   S:X  a  UnUS
S nOUnUSS nU(       a  UR                  U5        UR!                  S5      u  pnU(       d"  [        R
                  " SU SUS-    SU 35      e ["        R$                  " UR                  5       5      nUR                  5       R1                  S5      nUR                  USS US   U45        GM  SU;   d  SU;   a,  U	c   ["        R2                  " S5      R4                  n	U	" SU5      nU(       d  U(       a  [7        XU5      n/ n/ nOUnU(       a!  UR                  U5        U
" UXU45        / nGM  U
" U5        GM     g! [         a    [        R
                  " S5      ef = f! , (       d  f       GNK= f! [         a$  n[        R
                  " [        U5      5      eSnAff = f! [&         aX  nU R(                  R+                  SUR,                  R.                  U5        [        R
                  " SU SUS-    SU 35      eSnAff = f)ac  Process an input file.

Lines starting with '#' and empty lines will be ignored.
Lines starting with '-' will be interpreted as a key-value pair
  separated by an '='. where
  'key' is a dot-separated option name and
  'value' is a JSON-parsable string.
  These configuration options will be applied
  while processing the next URL only.
Lines starting with '-G' are the same as above, except these options
  will be applied for *all* following URLs, i.e. they are Global.
Everything else will be used as a potential URL.

Example input file:

# settings global options
-G base-directory = "/tmp/"
-G skip = false

# setting local options for the next URL
-filename="spaces_are_optional.jpg"
-skip    = true

https://example.org/

# next URL uses default filename and 'skip' is false.
https://example.com/index.htm # comment1
https://example.com/404.htm   # comment2
-zstdin is not readableNutf-8encodingcdr   #r   r   G=zInvalid KEY=VALUE pair 'z
' on line z in z%s: %szUnable to parse '.z #z	#z\s+#.*r,   )r   stdin	readlinesr   r   InputFileErroropenrm   r  _action_comment_action_deleter   r   	enumeratestripr   rf   r
   
json_loads
ValueErrorr   r   r   r   rn   resubr   )r  r   r
  linesfpr  gconflconfindiciesstrip_commentr   nlineconfkeysepry   r  s                     r  r   InputManager.add_file  s    < 3;vH		++- D9$1RLLNE 2
 zz#(

4 "E]
}--3,,!! 'GA::<D47c>aCt9>d1gn D8D D8D *"&.."5%#2224& 9##$Q3%tD634 4N OOEKKM:E iik'',S"Xs2w67 4<5D=$,(,	(:(>(>(T2DE%d59CEECOOA&Cx89!H3Ki (9  H../FGGH
 21 9..s3x889^ " NHHNN8S]]-C-CSI#22+E7*QqSEdVLN NNsX   I, 
J" JJ" =$K,!J
JJ" J" "
K,KK
L5AL00L5c                 @    USL a  SnOUS-  nUR                   U l        g )NTz[{current}/{total}] {url}
r4   )
format_mapr  )r  r  s     r  r*   InputManager.progress  s$    d?3GtOG**r  c                 .    U =R                   S-  sl         g )Nr   r  r  s    r  r   InputManager.next  s    qr  c                 H    U R                   (       a  U R                  5         g g r  )r  _rewriter  s    r  r   InputManager.success  s    ::MMO r  c                 j  ^ U R                   (       a  U R                  (       a_  U R                  u  pp4U R                  U   mSR                  U4S jU 5       5      nU(       a  US   S:X  a  US S nU R	                  5         O[        U R                  5      nU R                   R                  U5        g g )Nr,   c              3   .   >#    U  H
  nTU   v   M     g 7fr  r   ).0ir;  s     r  	<genexpr>%InputManager.error.<locals>.<genexpr>  s     91eAhs   r.  r4   )r   r  r  r   rN  rm   r  r   )r  r  r   r
  r?  outr;  s         @r  r   InputManager.error  s    88zz.2jj+6

4(gg9993r7d?cr(C$))nHHMM# r  c                    U R                   u  pp4US-   nU R                  U   nU" Xd5         [        USSS9 nUR                  U5        S S S 5        [        R
                  " XR5        g ! , (       d  f       N%= f! [         a;  nU R                  R                  SX(R                  R                  U5         S nAg S nAff = f)Nz.tmpwr%  r&  zUnable to update '%s' (%s: %s))r  r  r2  
writelinesr   replacer   r   rp   r   r   )	r  r  r   r
  r?  path_tmpr;  r<  r  s	            r  rN  InputManager._rewrite   s    &*jj#6&=

4 u	3hg6"e$ 7JJx& 76  	3HH0mm,,c3 3	3s.   A: A)
A: )
A73A: :
B?1B::B?c                 (    U H  nSX   -   X'   M     g )Nz# r   r  r;  r?  rS  s       r  r3  InputManager._action_comment/  s    AehEH r  c                     U H  nSX'   M	     g )Nr,   r   r_  s       r  r4  InputManager._action_delete3  s    AEH r  c                     SU l         U $ )Nr   rK  r  s    r  __iter__InputManager.__iter__7  s    r  c                 r    U R                   U R                     n[	        U[
        5      (       a  Xl        US   nOS U l        Xl        U R                  (       aI  [        R                  " U R                  [        U R                   5      U R                  S-   US.5      5        U$ ! [         a    [        ef = f)Nr   r   )totalcurrentr  )r   r  
IndexErrorStopIterationrl   tupler  r  r  r   stderr_writer   r  s     r  __next__InputManager.__next__;  s    	 ))DKK(C c5!!Ja&CDJ	==tyy>;;?/ ! 
 
!  	 	 s   B% %B6)r  r  r  r  r   r  r   r   r  )T)r   
__module____qualname____firstlineno__r  r  r   r   r*   r   r   r   rN  r3  r4  rd  rm  __static_attributes__r   r  r  r   r     sE    q f+3'r  r   c                   (    \ rS rSrSrSrS rS rSrg)r   iQ  z(URL with attached config key-value pairsry   r   r   c                 (    Xl         X l        X0l        g r  rt  )r  r  r=  r>  s       r  r  ExtendedUrl.__init__U  s    
r  c                     U R                   $ r  )ry   r  s    r  __str__ExtendedUrl.__str__Z  s    zzr  )r   r   ry   N)	r   ro  rp  rq  r   	__slots__r  rx  rr  r   r  r  r   r   Q  s    2/I
r  r   )r   r   r   r,   r   r   r   r   r   r	   r
   r   
__author____copyright____license____maintainer__	__email__r   r  r   r   r   r  r  <module>r     s[    
 
  N N N
4!#	!!gTN Nb
 
r  