fix:修复hfc根本不会被触发的bug

This commit is contained in:
SengokuCola
2025-04-23 23:08:19 +08:00
parent 5782d4425b
commit 7733782929
13 changed files with 621 additions and 472 deletions

View File

@@ -23,9 +23,9 @@ class MaiState(enum.Enum):
"""
OFFLINE = "不在线"
PEEKING = "看一眼手机"
PEEKING = "看一眼"
NORMAL_CHAT = "正常聊天"
FOCUSED_CHAT = "聊天"
FOCUSED_CHAT = "聊天"
def get_normal_chat_max_num(self):
if self == MaiState.OFFLINE:
@@ -127,9 +127,9 @@ class MaiStateManager:
elif current_status == MaiState.PEEKING:
logger.info("当前[在窥屏],思考要不要继续聊下去......")
elif current_status == MaiState.NORMAL_CHAT:
logger.info("当前在[闲聊]思考要不要继续聊下去......")
logger.info("当前在[随便看]思考要不要继续聊下去......")
elif current_status == MaiState.FOCUSED_CHAT:
logger.info("当前在[激情聊天]思考要不要继续聊下去......")
logger.info("当前在[专心看]思考要不要继续聊下去......")
# 1. 麦麦每分钟都有概率离线
if time_since_last_min_check >= 60:
@@ -149,7 +149,7 @@ class MaiStateManager:
next_state_candidate = random.choices(choices_list, weights=weights, k=1)[0]
if next_state_candidate != MaiState.OFFLINE:
next_state = next_state_candidate
logger.debug(f"上线!开始 {next_state.name}")
logger.debug(f"上线!开始 {next_state.value}")
else:
# 继续离线状态
next_state = MaiState.OFFLINE
@@ -159,7 +159,7 @@ class MaiStateManager:
weights = [70, 20, 10]
choices_list = [MaiState.OFFLINE, MaiState.NORMAL_CHAT, MaiState.FOCUSED_CHAT]
next_state = random.choices(choices_list, weights=weights, k=1)[0]
logger.debug(f"手机看完了,接下来 {next_state.name}")
logger.debug(f"手机看完了,接下来 {next_state.value}")
elif current_status == MaiState.NORMAL_CHAT:
if time_in_current_status >= 300: # NORMAL_CHAT 最多持续 300 秒
@@ -167,16 +167,16 @@ class MaiStateManager:
choices_list = [MaiState.OFFLINE, MaiState.FOCUSED_CHAT]
next_state = random.choices(choices_list, weights=weights, k=1)[0]
if next_state == MaiState.FOCUSED_CHAT:
logger.debug(f"继续深入聊天, {next_state.name}")
logger.debug(f"继续深入聊天, {next_state.value}")
else:
logger.debug(f"聊完了,接下来 {next_state.name}")
logger.debug(f"聊完了,接下来 {next_state.value}")
elif current_status == MaiState.FOCUSED_CHAT:
if time_in_current_status >= 600: # FOCUSED_CHAT 最多持续 600 秒
weights = [80, 20]
choices_list = [MaiState.OFFLINE, MaiState.NORMAL_CHAT]
next_state = random.choices(choices_list, weights=weights, k=1)[0]
logger.debug(f"深入聊天结束,接下来 {next_state.name}")
logger.debug(f"深入聊天结束,接下来 {next_state.value}")
# 如果决定了下一个状态,且这个状态与当前状态不同,则返回下一个状态
if next_state is not None and next_state != current_status: