소스 검색

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

master
a5225662 1 년 전
부모
커밋
18e9aca3b1
2개의 변경된 파일17개의 추가작업 그리고 52개의 파일을 삭제
  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





Loading…
취소
저장