diff --git a/common/time_check.py b/common/time_check.py index 4e2c826..56ea336 100644 --- a/common/time_check.py +++ b/common/time_check.py @@ -1,46 +1,13 @@ import time,re,hashlib -from config import load_config,md5,conf import config - - -def get_file_md5(file_name): - """ - 计算文件的md5 - :param file_name: - :return m.hexdigest(): - """ - m = hashlib.md5() #创建md5对象 - with open(file_name,'rb') as fobj: - while True: - data = fobj.read(1024) - if not data: - break - m.update(data) #更新md5对象 - - return m.hexdigest() #返回md5值 - +from common.log import logger def time_checker(f): - # print(args[0]()) - def wrapTheFunction(self, *args, **kwargs): - global md5 # 从config.py拿来一个全局变量md5 默认是False - if md5 == None: - _config = conf() - elif md5 == get_file_md5("./config.json"): - _config = conf() - # chat_time_module = _config["chat_time_module"] - # chat_start_time = _config["chat_start_time"] - # chat_stopt_time = _config["chat_stop_time"] - else: - print("检测到配置文件变化") - _config = load_config() # 启动时间支持热更改 修改config.json文件后即可生效 - md5 = get_file_md5("./config.json") - # config.md5 = get_file_md5("./config.json") - + def _time_checker(self, *args, **kwargs): + _config = config.conf() chat_time_module = _config["chat_time_module"] chat_start_time = _config["chat_start_time"] chat_stopt_time = _config["chat_stop_time"] - # print(md5,chat_time_module,chat_start_time,chat_stopt_time) if chat_time_module: time_regex = re.compile(r'^([01]?[0-9]|2[0-4])(:)([0-5][0-9])$') #时间匹配,包含24:00 @@ -49,24 +16,24 @@ def time_checker(f): stoptime_format_check = time_regex.match(chat_stopt_time) # 检查停止时间格式 chat_time_check = chat_start_time < chat_stopt_time # 确定启动时间<停止时间 - if starttime_format_check and stoptime_format_check and chat_time_check: - # print('服务启动时间:{}'.format(CHAT_START_TIME)) - # print('服务结束时间:{}'.format(CHAT_STOP_TIME)) - if chat_start_time>"23:59": - print('启动时间可能存在问题,请修改') - else: - print("时间格式不正确,请在config.json中修改您的CHAT_START_TIME/CHAT_STOP_TIME,否则可能会影响您正常使用,程序正在自动退出") + # 时间格式检查 + if not (starttime_format_check and stoptime_format_check and chat_time_check): + logger.warn('时间格式不正确,请在config.json中修改您的CHAT_START_TIME/CHAT_STOP_TIME,否则可能会影响您正常使用,开始({})-结束({})'.format(starttime_format_check,stoptime_format_check)) + if chat_start_time>"23:59": + logger.error('启动时间可能存在问题,请修改!') + # 服务时间检查 now_time = time.strftime("%H:%M", time.localtime()) - if chat_start_time <= now_time <= chat_stopt_time: - # print("在服务时间内") - # 正常请求并返回 + if chat_start_time <= now_time <= chat_stopt_time: # 服务时间内,正常返回回答 f(self, *args, **kwargs) return None else: - print('不在服务时间内,禁止访问') - return None + if args[0]['Content'] == "#更新配置": # 不在服务时间内也可以更新配置 + f(self, *args, **kwargs) + else: + logger.info('非服务时间内,不接受访问') + return None else: - f(self, *args, **kwargs) - return wrapTheFunction + f(self, *args, **kwargs) # 未开启时间模块则直接回答 + return _time_checker diff --git a/config.py b/config.py index 86b2523..1a5a1f2 100644 --- a/config.py +++ b/config.py @@ -5,7 +5,6 @@ import os from common.log import logger config = {} -md5 = None def load_config(): global config @@ -17,7 +16,6 @@ def load_config(): # 将json字符串反序列化为dict类型 config = json.loads(config_str) logger.info("[INIT] load config: {}".format(config)) - return config