Skip to content

Commit 053867c

Browse files
authored
Merge pull request #17 from Tanpinsary/fix-stale-group-schedule-users
fix: skip empty ics file fix: remove users who left the group
2 parents c4e7e80 + aba6c63 commit 053867c

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

nonebot_plugin_course_schedule/commands/group_schedule.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)