diff options
author | Kyomotoi <[email protected]> | 2020-11-22 01:01:43 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2020-11-22 01:01:43 +0800 |
commit | f7198e8722f310926cf147bd0b218c5d9ef5d6c3 (patch) | |
tree | f4c3d0f2a003695b67e0e2018ec8d88898bcda90 /ATRI/check.py | |
parent | 6c3e4c7f583be0006cd7bb913b7db81b987d2813 (diff) | |
download | ATRI-f7198e8722f310926cf147bd0b218c5d9ef5d6c3.tar.gz ATRI-f7198e8722f310926cf147bd0b218c5d9ef5d6c3.tar.bz2 ATRI-f7198e8722f310926cf147bd0b218c5d9ef5d6c3.zip |
[Update]
新增:
* 舆情检测
* 对涩图加以调用限制
修复:
* Pixiv插件全体
* 储存群聊信息时无法创建文件
优化:
* 部分代码重构,效率up
* 调整插件结构,使其看起来更舒服
Diffstat (limited to 'ATRI/check.py')
-rw-r--r-- | ATRI/check.py | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/ATRI/check.py b/ATRI/check.py new file mode 100644 index 0000000..8be8c5c --- /dev/null +++ b/ATRI/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 .utils.utils_yml import load_yaml + +CONFIG_PATH = Path('.') / 'config.yml' +config = load_yaml(CONFIG_PATH) + + +class checkATRI(): + """运行前检查必要条件""" + def chechConfig(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) |