summaryrefslogtreecommitdiff
path: root/check.py
blob: a1d49602d5ffeede963bab0bfc70381f614503d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/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 sys
import time
from pathlib import Path
from nonebot.log import logger
from rich.progress import Progress

from utils.utils_yml import load_yaml

CONFIG_PATH = Path('.') / 'config.yml'
config = load_yaml(CONFIG_PATH)


class checkATRI():
    """运行前检查必要条件"""
    logger.info('Checking Config...')

    def __init__(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:
                            logger.warning('DEBUG open.')
                            progress.update(task, advance=1)
                            time.sleep(0.2)
                    else:
                        if not bot[key]:
                            logger.warning(
                                f"Can't load [{key}] from config.yml")
                            sys.exit(0)

                        else:
                            progress.update(task, advance=1)
                            time.sleep(0.2)

                # 检查接口配置
                api = config['api']
                for key in api:
                    if not api[key]:
                        logger.warning(f"Can't load [{key}] from config.yml")
                        sys.exit(0)
                    else:
                        progress.update(task, advance=1)
                        time.sleep(0.2)

                # 检查网页配置
                html = config['html']
                for key in html:
                    if not html[key]:
                        logger.warning(f"Can't load [{key}] from config.yml")
                        sys.exit(0)
                    else:
                        progress.update(task, advance=1)
                        time.sleep(0.2)