@@ -30,7 +30,8 @@ async def _(bot: Bot, event: GroupMessageEvent, arg: Message = CommandArg()):
3030 await group_schedule .send ("本群还没有人绑定课表哦~" )
3131 return None
3232
33- user_ids = user_data [str (group_id )]
33+ group_id_str = str (group_id )
34+ user_ids = list (user_data [group_id_str ])
3435
3536 args = shlex .split (arg .extract_plain_text ())
3637 logger .info (f"{ group_id } 查询群课表: { args } " )
@@ -62,6 +63,9 @@ async def _(bot: Bot, event: GroupMessageEvent, arg: Message = CommandArg()):
6263 except Exception :
6364 continue
6465
66+ if not courses :
67+ continue
68+
6569 today_courses = [c for c in courses if c ["start_time" ].date () == target_date ]
6670 current = next_ = None
6771
@@ -74,7 +78,16 @@ async def _(bot: Bot, event: GroupMessageEvent, arg: Message = CommandArg()):
7478 next_ = course
7579
7680 display = current or next_
77- user_info = await bot .get_group_member_info (group_id = group_id , user_id = user_id )
81+ try :
82+ user_info = await bot .get_group_member_info (group_id = group_id , user_id = user_id )
83+ except Exception as e :
84+ logger .warning (f"获取群 { group_id } 成员 { user_id } 信息失败,已从群课表中移除: { e } " )
85+ if user_id in user_data .get (group_id_str , []):
86+ user_data [group_id_str ].remove (user_id )
87+ if not user_data [group_id_str ]:
88+ del user_data [group_id_str ]
89+ data_manager .save_user_data (user_data )
90+ continue
7891 nickname = (
7992 user_info ["card" ]
8093 if user_info ["card" ] is not None and user_info ["card" ] != ""
0 commit comments