1+ import io
2+ import sys
13import os
24import json
35from typing import Optional , Any
2123 'User-Agent' : 'kmdr/1.0 (https://github.com/chrisis58/kmoe-manga-downloader)'
2224}
2325
24- console = Console ()
2526
26- def console_print (* args , ** kwargs ):
27- console .print (* args , ** kwargs )
28-
29- progress = Progress (
27+ progress_definition = (
3028 TextColumn ("[blue]{task.fields[filename]}" , justify = "left" ),
3129 TextColumn ("{task.fields[status]}" , justify = "right" ),
3230 TextColumn ("{task.percentage:>3.1f}%" ),
@@ -38,7 +36,6 @@ def console_print(*args, **kwargs):
3836 "," ,
3937 TimeRemainingColumn (),
4038 "]" ,
41- console = console ,
4239)
4340
4441session_var = ContextVar ('session' )
@@ -52,8 +49,13 @@ def argument_parser():
5249 return parser
5350
5451 parser = argparse .ArgumentParser (description = 'Kmoe 漫画下载器' )
52+
53+ parser .add_argument ('-v' , '--verbose' , action = 'store_true' , help = '启用详细输出' )
54+
5555 subparsers = parser .add_subparsers (title = '可用的子命令' , dest = 'command' )
5656
57+ version_parser = subparsers .add_parser ('version' , help = '显示当前版本信息' )
58+
5759 download_parser = subparsers .add_parser ('download' , help = '下载指定的漫画' )
5860 download_parser .add_argument ('-d' , '--dest' , type = str , help = '指定下载文件的保存路径,默认为当前目录' , required = False )
5961 download_parser .add_argument ('-l' , '--book-url' , type = str , help = '漫画详情页面的 URL' , required = False )
@@ -65,6 +67,7 @@ def argument_parser():
6567 download_parser .add_argument ('-p' , '--proxy' , type = str , help = '设置下载使用的代理服务器' , required = False )
6668 download_parser .add_argument ('-r' , '--retry' , type = int , help = '网络请求失败时的重试次数' , required = False )
6769 download_parser .add_argument ('-c' , '--callback' , type = str , help = '每个卷下载完成后执行的回调脚本,例如: `echo {v.name} downloaded!`' , required = False )
70+ download_parser .add_argument ('-m' , '--method' , type = int , help = '下载方法,对应网站上的不同下载方式' , required = False , choices = [1 , 2 ], default = 1 )
6871
6972 login_parser = subparsers .add_parser ('login' , help = '登录到 Kmoe' )
7073 login_parser .add_argument ('-u' , '--username' , type = str , help = '用户名' , required = True )
@@ -185,7 +188,7 @@ def set_base_url(self, value: str):
185188 self ._config .base_url = value
186189 self .update ()
187190
188- def get_base_url (self ) -> str :
191+ def get_base_url (self ) -> Optional [ str ] :
189192 return self ._config .base_url
190193
191194 def update (self ):
@@ -237,3 +240,12 @@ def combine_args(dest: argparse.Namespace) -> argparse.Namespace:
237240 return __combine_args (dest , option )
238241
239242base_url_var = ContextVar ('base_url' , default = Configurer ().base_url )
243+
244+ _verbose = False
245+
246+ def is_verbose () -> bool :
247+ return _verbose
248+
249+ def post_init (args ) -> None :
250+ global _verbose
251+ _verbose = getattr (args , 'verbose' , False )
0 commit comments