Sfoglia il codice sorgente

调用#更新配置,替代md5校验,减少重复代码,提高程序效率,将print替换为logger

a5225662 3 anni fa
parent
commit
18e9aca3b1
2 ha cambiato i file con 17 aggiunte e 52 eliminazioni
  1. 17 50
      common/time_check.py
  2. 0 2
      config.py

+ 17 - 50
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
 

+ 0 - 2
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