mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-02-04 09:17:41 +08:00
39 lines
1.9 KiB
Python
39 lines
1.9 KiB
Python
import time,re,hashlib
|
||
import config
|
||
from common.log import logger
|
||
|
||
def time_checker(f):
|
||
def _time_checker(self, *args, **kwargs):
|
||
_config = config.conf()
|
||
chat_time_module = _config.get("chat_time_module", False)
|
||
if chat_time_module:
|
||
chat_start_time = _config.get("chat_start_time", "00:00")
|
||
chat_stopt_time = _config.get("chat_stop_time", "24:00")
|
||
time_regex = re.compile(r'^([01]?[0-9]|2[0-4])(:)([0-5][0-9])$') #时间匹配,包含24:00
|
||
|
||
starttime_format_check = time_regex.match(chat_start_time) # 检查停止时间格式
|
||
stoptime_format_check = time_regex.match(chat_stopt_time) # 检查停止时间格式
|
||
chat_time_check = chat_start_time < chat_stopt_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: # 服务时间内,正常返回回答
|
||
f(self, *args, **kwargs)
|
||
return None
|
||
else:
|
||
if args[0]['Content'] == "#更新配置": # 不在服务时间内也可以更新配置
|
||
f(self, *args, **kwargs)
|
||
else:
|
||
logger.info('非服务时间内,不接受访问')
|
||
return None
|
||
else:
|
||
f(self, *args, **kwargs) # 未开启时间模块则直接回答
|
||
return _time_checker
|
||
|