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 1/2] 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="订阅不存在") From 4fa8f5b24806aaf919f00ab95b8c1b6d943d3e1b Mon Sep 17 00:00:00 2001 From: InfinityPacer <160988576+InfinityPacer@users.noreply.github.com> Date: Fri, 24 Jan 2025 17:26:54 +0800 Subject: [PATCH 2/2] feat(event): use latest subscribe_info in SubscribeModified --- app/api/endpoints/subscribe.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/api/endpoints/subscribe.py b/app/api/endpoints/subscribe.py index 83805c00..b84365e0 100644 --- a/app/api/endpoints/subscribe.py +++ b/app/api/endpoints/subscribe.py @@ -128,7 +128,7 @@ def update_subscribe( eventmanager.send_event(EventType.SubscribeModified, { "subscribe_id": subscribe.id, "old_subscribe_info": old_subscribe_dict, - "subscribe_info": subscribe_dict, + "subscribe_info": subscribe.to_dict(), }) return schemas.Response(success=True) @@ -152,12 +152,11 @@ def update_subscribe_status( 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, + "subscribe_info": subscribe.to_dict(), }) return schemas.Response(success=True) @@ -229,12 +228,11 @@ def reset_subscribes( "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, + "subscribe_info": subscribe.to_dict(), }) return schemas.Response(success=True) return schemas.Response(success=False, message="订阅不存在")