diff options
author | Kyomotoi <[email protected]> | 2020-11-28 21:23:22 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2020-11-28 21:23:22 +0800 |
commit | f5059aeccfc646f53ee05a35baf447b152c3a6e1 (patch) | |
tree | f27c8de60b9c517443f154e727f5f0f4e5a41a6c /check.py | |
parent | a6343b34472eed91b6fed8748ebcefd6c2f6b294 (diff) | |
download | ATRI-f5059aeccfc646f53ee05a35baf447b152c3a6e1.tar.gz ATRI-f5059aeccfc646f53ee05a35baf447b152c3a6e1.tar.bz2 ATRI-f5059aeccfc646f53ee05a35baf447b152c3a6e1.zip |
[Fix]
Diffstat (limited to 'check.py')
-rw-r--r-- | check.py | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/check.py b/check.py new file mode 100644 index 0000000..a70d508 --- /dev/null +++ b/check.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 +# -*- encoding: utf-8 -*- +''' +@File : check.py +@Time : 2020/11/07 14:30:34 +@Author : Kyomotoi +@Contact : [email protected] +@Github : https://github.com/Kyomotoi +@License : Copyright © 2018-2020 Kyomotoi, All Rights Reserved. +''' +__author__ = 'kyomotoi' + +import os +import sys +import time +import pkg_resources + +rely_list = ''.join(f'{rely}' for rely in pkg_resources.working_set) +need_rely_list = ['pathlib', 'pyyaml', 'rich'] +for rely in need_rely_list: + if rely not in rely_list: + os.system(f'pip3 install {rely}') + +from pathlib import Path +from rich.progress import Progress +from ATRI.utils.utils_yml import load_yaml + +CONFIG_PATH = Path('.') / 'config.yml' +config = load_yaml(CONFIG_PATH) + + +class CheckATRI(): + """运行前检查必要条件""" + def checkConfig(self) -> None: + """检查配置文件是否填写完整""" + len_config = len(config) + len(config['bot']) + len( + config['api']) + len(config['html']) + + with Progress() as progress: + task = progress.add_task("[cyan]Checking Config...", + total=len_config) + + while not progress.finished: + # 检查基本配置 + bot = config['bot'] + for key in bot: + if key == 'debug': + if bot['debug'] != 0: + print('DEBUG now is open.') + progress.update(task, advance=1) + time.sleep(0.1) + else: + if not bot[key]: + print(f"Can't load [{key}] from config.yml") + time.sleep(5) + sys.exit(0) + + else: + progress.update(task, advance=1) + time.sleep(0.1) + + # 检查接口配置 + api = config['api'] + for key in api: + if not api[key]: + print(f"Can't load [{key}] from config.yml") + time.sleep(5) + sys.exit(0) + else: + progress.update(task, advance=1) + time.sleep(0.1) + + # 检查网页配置 + html = config['html'] + for key in html: + if not html[key]: + print(f"Can't load [{key}] from config.yml") + time.sleep(5) + sys.exit(0) + else: + progress.update(task, advance=1) + time.sleep(0.1) + + def checkRely(self) -> None: + ''' + 检查依赖是否完整 + 如不完整自动安装 + 别吐槽 暴 力 + ''' + rely_list = [ + 'nonebot2', 'nonebot2[scheduler]', 'nonebot2[test]', 'nltk', + 'requests', 'pillow', 'psutil' + ] + rely_len = len(rely_list) + + with Progress() as progress: + task = progress.add_task("[cyan]Checking Rely...", total=rely_len) + + while not progress.finished: + for rely in rely_list: + if rely not in rely_list: + try: + os.system(f'pip3 install {rely}') + except: + print( + "Can't install package {rely}. Please use Google/Bing search error repo and fix it by yourself." + ) + time.sleep(5) + sys.exit(0) + progress.update(task, advance=1) + time.sleep(0.1) |