From 3089c0c52401e0fe55bd644626fe25805e004192 Mon Sep 17 00:00:00 2001 From: InfinityPacer <160988576+InfinityPacer@users.noreply.github.com> Date: Fri, 24 Jan 2025 17:24:29 +0800 Subject: [PATCH] feat(event): add old_subscribe_info to event and update triggers --- app/api/endpoints/subscribe.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/api/endpoints/subscribe.py b/app/api/endpoints/subscribe.py index e5cd278e..83805c00 100644 --- a/app/api/endpoints/subscribe.py +++ b/app/api/endpoints/subscribe.py @@ -109,6 +109,7 @@ def update_subscribe( if not subscribe: return schemas.Response(success=False, message="订阅不存在") # 避免更新缺失集数 + old_subscribe_dict = subscribe.to_dict() subscribe_dict = subscribe_in.dict() if not subscribe_in.lack_episode: # 没有缺失集数时,缺失集数清空,避免更新为0 @@ -126,6 +127,7 @@ def update_subscribe( # 发送订阅调整事件 eventmanager.send_event(EventType.SubscribeModified, { "subscribe_id": subscribe.id, + "old_subscribe_info": old_subscribe_dict, "subscribe_info": subscribe_dict, }) return schemas.Response(success=True) @@ -146,9 +148,17 @@ def update_subscribe_status( valid_states = ["R", "P", "S"] if state not in valid_states: return schemas.Response(success=False, message="无效的订阅状态") + old_subscribe_dict = subscribe.to_dict() subscribe.update(db, { "state": state }) + subscribe_dict = subscribe.to_dict() + # 发送订阅调整事件 + eventmanager.send_event(EventType.SubscribeModified, { + "subscribe_id": subscribe.id, + "old_subscribe_info": old_subscribe_dict, + "subscribe_info": subscribe_dict, + }) return schemas.Response(success=True) @@ -213,11 +223,19 @@ def reset_subscribes( """ subscribe = Subscribe.get(db, subid) if subscribe: + old_subscribe_dict = subscribe.to_dict() subscribe.update(db, { "note": [], "lack_episode": subscribe.total_episode, "state": "R" }) + subscribe_dict = subscribe.to_dict() + # 发送订阅调整事件 + eventmanager.send_event(EventType.SubscribeModified, { + "subscribe_id": subscribe.id, + "old_subscribe_info": old_subscribe_dict, + "subscribe_info": subscribe_dict, + }) return schemas.Response(success=True) return schemas.Response(success=False, message="订阅不存在")