Added manga-py source
This commit is contained in:
103
manga-py-stable_1.x/manga_py/__init__.py
Normal file
103
manga-py-stable_1.x/manga_py/__init__.py
Normal file
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import traceback
|
||||
from atexit import register as atexit_register
|
||||
from json import dumps
|
||||
from os import makedirs, path
|
||||
from shutil import rmtree
|
||||
from sys import exit, stderr
|
||||
|
||||
try:
|
||||
from loguru import logger
|
||||
catch = logger.catch
|
||||
except ImportError:
|
||||
def catch(x):
|
||||
print('Setup in progress?')
|
||||
|
||||
try:
|
||||
from .cli import Cli
|
||||
from .cli.args import get_cli_arguments
|
||||
from .fs import get_temp_path, get_info
|
||||
from .info import Info
|
||||
from .meta import __version__
|
||||
except ImportError:
|
||||
print('Setup in progress?', file=stderr)
|
||||
|
||||
__author__ = 'Sergey Zharkov'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'sttv-pc@mail.ru'
|
||||
|
||||
|
||||
@atexit_register
|
||||
def before_shutdown():
|
||||
temp_dir = get_temp_path()
|
||||
path.isdir(temp_dir) and rmtree(temp_dir)
|
||||
|
||||
|
||||
def _init_cli(args, _info):
|
||||
error_lvl = -5
|
||||
try:
|
||||
_info.start()
|
||||
cli_mode = Cli(args, _info)
|
||||
cli_mode.start()
|
||||
code = 0
|
||||
except Exception as e:
|
||||
traceback.print_tb(e.__traceback__, error_lvl, file=stderr)
|
||||
code = 1
|
||||
_info.set_error(e)
|
||||
return code
|
||||
|
||||
|
||||
def _run_util(args) -> tuple:
|
||||
parse_args = args.parse_args()
|
||||
_info = Info(parse_args)
|
||||
code = _init_cli(args, _info)
|
||||
|
||||
if parse_args.print_json:
|
||||
_info = dumps(
|
||||
_info.get(),
|
||||
indent=2,
|
||||
separators=(',', ': '),
|
||||
sort_keys=True,
|
||||
)
|
||||
else:
|
||||
_info = []
|
||||
|
||||
return code, _info
|
||||
|
||||
|
||||
def _update_all(args):
|
||||
parse_args = args.parse_args()
|
||||
parse_args.quiet or print('Update all', file=stderr)
|
||||
multi_info = {}
|
||||
|
||||
dst = parse_args.destination
|
||||
json_info = get_info(dst)
|
||||
|
||||
for i in json_info:
|
||||
parse_args.manga_name = i['manga_name']
|
||||
parse_args.url = i['url']
|
||||
code, _info = _run_util(args)
|
||||
multi_info[i['directory']] = _info
|
||||
parse_args.quiet or (parse_args.print_json and print(multi_info))
|
||||
|
||||
|
||||
@catch
|
||||
def main():
|
||||
# if ~__version__.find('alpha'):
|
||||
# print('Alpha release! There may be errors!', file=stderr)
|
||||
temp_path = get_temp_path()
|
||||
path.isdir(temp_path) or makedirs(temp_path)
|
||||
|
||||
args = get_cli_arguments()
|
||||
parse_args = args.parse_args()
|
||||
|
||||
code, _info = _run_util(args)
|
||||
parse_args.quiet or (parse_args.print_json and print(_info))
|
||||
|
||||
exit(code)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user