diff --git a/danding_bot/plugins/danding_help/help.py b/danding_bot/plugins/danding_help/help.py index 26d2aa9..a8166e5 100644 --- a/danding_bot/plugins/danding_help/help.py +++ b/danding_bot/plugins/danding_help/help.py @@ -129,12 +129,25 @@ async def _handle_activity(bot: V11Bot, event: GroupMessageEvent): await activity.finish(plugin_config.NoActivityStr) return - poster_items = [it for it in items if it.get("poster_url") or it.get("poster_path")] + # 严格过滤出处于发布状态且未结束的活动,排除草稿(draft)、已结束(ended)、已暂停(paused) + valid_items = [] + for it in items: + lifecycle = str(it.get("lifecycle") or "").lower() + pub_status = str(it.get("publication_status") or "").lower() + if lifecycle == "ended" or pub_status in ("draft", "archived", "paused"): + continue + valid_items.append(it) + + if not valid_items: + await activity.finish(plugin_config.NoActivityStr) + return + + poster_items = [it for it in valid_items if it.get("poster_url") or it.get("poster_path")] # 无海报时回退为文字列表 if not poster_items: msg_lines = ["📢 当前运营活动:"] - for it in items: + for it in valid_items: name = it.get("活动名", "未知活动") start = it.get("活动开始时间", "") end = it.get("活动截止时间", "")